현재 첫 번째 OSM 프로젝트를 개발 중이며 OpenLayers Examples lib의 표준 예제로 시작하려고했지만 Map에 3 개의 마커를 배치하고 다른 레이어도 표시했습니다 (Google Streetmap, Mapnik).)마커가 다른 레이어에 잘못 배치 됨
하지만 (예 : WSM에서 Mapnik으로) 레이어를 변경하면 마커가 스팟 0,0으로 재설정됩니다. 나는 투영력을 바꾸지 않는다.
내가 누락 된 자료가 있습니까?
<script defer="defer" type="text/javascript">
var map, layer;
function init(){
OpenLayers.ProxyHost="/proxy/?url=";
map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'});
map.addLayer(layer);
var osm = new OpenLayers.Layer.OSM();
var gmap = new OpenLayers.Layer.Google("Google Streets");
map.addLayers([osm, gmap]);
map.setCenter(new OpenLayers.LonLat(0, 0), 0);
var markers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(markers);
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
var halfIcon = icon.clone();
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(10,10),icon));
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,45),halfIcon));
marker = new OpenLayers.Marker(new OpenLayers.LonLat(90,10),icon.clone());
marker.setOpacity(0.9);
marker.events.register('mousedown', marker, function(evt) { alert(this.icon.url); OpenLayers.Event.stop(evt); });
markers.addMarker(marker);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
halfIcon.setOpacity(0.5);
}
</script>
Google지도가 아닌 OpenLayers입니다. 귀하의 태그를 수정했습니다 ... – scai
나는 이것을 위해 jsfiddle을 만들려고했습니다 : http://jsfiddle.net/aA9yL/ –