[NUUG kart] Støtte for markør på openstreetmap.no

Håkon Stordahl hakon at stordahl.org
Sun May 29 22:47:42 CEST 2011


On Sun, 29 May 2011 14:38:49 +0200, Vidar Gundersen wrote:

> 2011/5/29 Kai Stian Olstad <kart at olstad.com>:
>> openstreetmap.org har mulighet for å vise en markør på angitt posisjon
>> ved å sette en m foran lat og lon slik som dette
>> http://www.openstreetmap.org/?mlat=59.91704&mlon=10.72752&zoom=17&layers=M
>>
>> Er dette noe som kommer til openstreetmap.no?
>
> hvis flere mener det er aktuelt kan jeg vurdere å legge det til.
> tar gjerne i mot en patch.

Her er et forslag. (Siden koden bruker et par nye klasser ser det ut til
at man må bygge OpenLayers.js på nytt for å få det til å virke.)


Index: index.html
===================================================================
--- index.html	(revision 26076)
+++ index.html	(working copy)
@@ -44,6 +44,21 @@
   }
 }
 
+// Read marker position
+var args = getArgs(document.location.search);
+var mlon = args["mlon"];
+var mlat = args["mlat"];
+
+// If lon and lat parameters aren't explicitly specified, default to
+// the marker position
+if (mlon !== undefined && mlat !== undefined)
+{
+  lon = args["mlon"];
+  lat = args["mlat"];
+  if (args["zoom"] !== undefined)
+    zoom = args["zoom"];
+}
+
 var map;
 //Initialise the 'map' object
 function init() {
@@ -126,6 +141,16 @@
   map.addLayers([layerMapnik, layerTilesAtHome, layerCycle]);
   map.addLayers([layerScreenspec, layerHiking, layerSkiing, layerTransit]);
 
+  if (mlon !== undefined && mlat !== undefined) {
+    var markers = new OpenLayers.Layer.Markers("Markør",
+      {displayInLayerSwitcher: false});
+    map.addLayer(markers);
+    var marker = new OpenLayers.Marker(new OpenLayers.LonLat(mlon, mlat).
+      transform(new OpenLayers.Projection("EPSG:4326"),
+                new OpenLayers.Projection("EPSG:900913")));
+    markers.addMarker(marker);
+  }
+
   var lonLat = new OpenLayers.LonLat(lon, lat).transform(
     epsg4326, map.getProjectionObject());
   if( ! map.getCenter() ){
Index: openlayers/build/osmno.cfg
===================================================================
--- openlayers/build/osmno.cfg	(revision 26076)
+++ openlayers/build/osmno.cfg	(working copy)
@@ -9,8 +9,10 @@
 OpenLayers/Projection.js
 OpenLayers/Layer/SphericalMercator.js
 OpenLayers/Layer/XYZ.js
+OpenLayers/Layer/Markers.js
 OpenLayers/Tile.js
 OpenLayers/Tile/Image.js
+OpenLayers/Marker.js
 
 OpenLayers/Control/Navigation.js
 OpenLayers/Control/KeyboardDefaults.js


More information about the kart mailing list