Kartvisning med sporlogg (ved å benytte statens kartverk + google maps)

allegretto

Medlem
Hei,
jeg ønsker å vise sporlogg fra turer på et kartlag som er hentet fra statens kartverk, slik som vist her:
Google Maps - www.vossnow.net

Jeg vil tro dette er forholdsvis greit å få til.. men kan noen hjelpe meg igang? Finnes det ferdige script som jeg kan bruke? evt joomla komponenter?

Jeg har klart å fått vist sporlogg på et google maps kart, men kartet fra google maps er veldig unøyaktig og mangelfullt når det kommer til stedsnavn på fjell og turområder. Da er statens kartverk mye bedre.
 

allegretto

Medlem
Har fått til det meste selv nå:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps - www.vossnow.net</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key="
type="text/javascript"></script>
<style type="text/css">
#main_container {
width: 100%;
height: 500px;
float: left;
clear: both;
position: relative;
z-index: 1;
}

#map_container {
height: 100%;
float: left;
position: relative;
}

#sidebar {
width: 270px;
float: left;
}
.html{
width: 100%;
height: 100%;
clip: auto;
position: absolute;
overflow: hidden;
}
#map_canvas {
height: 100%;
width: 100%;

display: block;
position: absolute;

}
</style>


<script type="text/javascript">
var filename= getUrlVars()["file"];
var lon= getUrlVars()["lon"];
var lat= getUrlVars()["lat"];
var zoomh= parseInt(getUrlVars()["zoomh"]);


function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}


function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));

map.setCenter(new GLatLng(lon, lat), zoomh);


var tilelayer = new GTileLayer(null, null, null,
{tileUrlTemplate: 'http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=toporaster2&zoom={Z}&x={X}&y={Y}',
isPng:true,
opacity:1.0 }
);
var myTileLayer = new GTileLayerOverlay(tilelayer);
map.addOverlay(myTileLayer);


map.addControl(new GLargeMapControl());

GDownloadUrl(filename, function(data, responseCode) {
var points=[];
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("trkpt");
var firstPoint=new GLatLng(parseFloat(markers[0].getAttribute("lat")),
parseFloat(markers[0].getAttribute("lon")));
var lastPoint=firstPoint
for (var i = 1; i < markers.length; i++) {
var newPoint=new GLatLng(parseFloat(markers.getAttribute("lat")),
parseFloat(markers.getAttribute("lon")));
if(newPoint.distanceFrom(lastPoint)>20) {
points.push(newPoint);
lastPoint=newPoint;
}
}


map.addOverlay(new GPolyline(points, "blue", 5));
});








}
}
</script>

</head>
<center>



<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas"></div>
<div id="message"></div>





</body>

</html>
 

allegretto

Medlem
MEN, det som nå gjennstår er å få posisjonert sporet/ruta automatisk, uten å måtte anngi map.setCenter manuelt med kordinater (lon, lat) og å spesifisere zoom-nivå.
Er det noen smarte hoder som kan hjelpe?
 

allegretto

Medlem
Kan noen hjelpe med å "migrere" koden til V3? Kartlaget er ikke lenger synlig etter at v2 har blitt "deprecated" etter 19.nov.
var tilelayer = new GTileLayer(null, null, null,
{tileUrlTemplate: 'http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=toporaster2&zoom={Z}&x={X}&y= {Y}',


Se mer info her: https://developers.google.com/maps/documentation/javascript/v2/
Warning: Version 2 of the Google Maps JavaScript API is no longer available. Please follow the guide to migrate your code to version 3 of the Google Maps JavaScript API. As of November 19, 2013, all applications requesting v2 are served a special, wrapped version of the v3 API instead. We expect this wrapped version of the API to work for most simple maps, but we strongly encourage you to migrate to the v3 API immediately.
 
Topp