Unterschied zwischen OpenLayers.Layer.OSM und OpenLayers.Layer.XYZ
Geschrieben von aquacoach (Gast) am 27. Oktober 2010 21:12:31: [flux]
Hi,
ich habe hier ein Problem mit dem Positionieren von Markern (POIs) in einem XYZ-Layer, die im OSM-Layer an der richtigen Stelle angezeigt werden.
Ich habe hier beide Varianten:
<html␣xmlns="http://www.w3.org/1999/xhtml"> <head> <link␣rel="stylesheet"␣href="../theme/default/style.css"␣type="text/css"␣/> <link␣rel="stylesheet"␣href="style.css"␣type="text/css"␣/>
<script␣src="../lib/OpenLayers.js"></script> <script␣type="text/javascript"> var␣map␣=␣null;
function␣init()␣{ var␣geographic␣=␣new␣OpenLayers.Projection("EPSG:4326");
map␣=␣new␣OpenLayers.Map('map',␣{ projection:␣geographic, displayProjection:␣geographic, });
var␣layer_tiles␣=␣new␣OpenLayers.Layer.OSM("XYZ-Layer",␣"http://tile.openstreetmap.org/${z}/${x}/${y}.png"); map.addLayer(layer_tiles);
var␣layer_markers␣=␣new␣OpenLayers.Layer.Markers(␣"Markers"␣); map.addLayer(layer_markers);
//␣http://maps.google.com/maps?f=q&source=s_q&hl=de&geocode=&q=+-5.615055%C2%B0,+120.457567%C2%B0&sll=37.0625,-95.677068&sspn=34.259599,79.013672&ie=UTF8&ll=-5.614966,120.457417&spn=0.002627,0.004823&t=h&z=18 var␣lonlat_center␣=␣new␣OpenLayers.LonLat(120.457567,␣-5.615055).transform(geographic,␣map.getProjectionObject());
var␣icon␣=␣new␣OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png'); layer_markers.addMarker(new␣OpenLayers.Marker(lonlat_center,␣icon));
map.setCenter(lonlat_center,␣15); } </script> </head> <body␣onload="init()"> <div␣id="map"␣class="smallmap"></div> </body> </html>
bzw.
<html␣xmlns="http://www.w3.org/1999/xhtml"> <head> <link␣rel="stylesheet"␣href="../theme/default/style.css"␣type="text/css"␣/> <link␣rel="stylesheet"␣href="style.css"␣type="text/css"␣/>
<script␣src="../lib/OpenLayers.js"></script> <script␣type="text/javascript"> var␣map␣=␣null;
function␣init()␣{ var␣geographic␣=␣new␣OpenLayers.Projection("EPSG:4326");
map␣=␣new␣OpenLayers.Map('map',␣{ projection:␣geographic, displayProjection:␣geographic, maxExtent:␣new␣OpenLayers.Bounds(-180,␣-180,␣180,␣180),␣//␣!!!␣Warum? });
var␣layer_tiles␣=␣new␣OpenLayers.Layer.XYZ("XYZ-Layer",␣"http://tile.openstreetmap.org/${z}/${x}/${y}.png"); map.addLayer(layer_tiles);
var␣layer_markers␣=␣new␣OpenLayers.Layer.Markers(␣"Markers"␣); map.addLayer(layer_markers);
//␣http://maps.google.com/maps?f=q&source=s_q&hl=de&geocode=&q=+-5.615055%C2%B0,+120.457567%C2%B0&sll=37.0625,-95.677068&sspn=34.259599,79.013672&ie=UTF8&ll=-5.614966,120.457417&spn=0.002627,0.004823&t=h&z=18 var␣lonlat_center␣=␣new␣OpenLayers.LonLat(120.457567,␣-5.615055).transform(geographic,␣map.getProjectionObject());
var␣icon␣=␣new␣OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png'); layer_markers.addMarker(new␣OpenLayers.Marker(lonlat_center,␣icon));
map.setCenter(lonlat_center,␣15); } </script> </head> <body␣onload="init()"> <div␣id="map"␣class="smallmap"></div> </body> </html>
Damit die Tiles im XYZ-Layer richtig angezeigt werden, musste ich maxExtent: new OpenLayers.Bounds(-180, -180, 180, 180) als Parameter angeben. Das ist der einzige Unterschied der 2 Dateien neben OSM bzw. XYZ.
Ich habe mir lib\OpenLayers\Layer\XYZ.js angeschaut, kann aber nichts verdächtiges finden.
Hat jemand eine Idee?
Coach
Antworten:
- Re: Unterschied zwischen OpenLayers.Layer.OSM und OpenLayers.Layer.XYZ · !i! (Gast) · 28.10.2010 11:39 [flux]
- Re: Unterschied zwischen OpenLayers.Layer.OSM und OpenLayers.Layer.XYZ · maxbe (Gast) · 28.10.2010 20:24 [flux]
- Re: Unterschied zwischen OpenLayers.Layer.OSM und OpenLayers.Layer.XYZ · aquacoach (Gast) · 31.10.2010 19:17 [flux]