[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