簡體   English   中英

OpenLayers在調用setCenter后,地圖仍然在0,0位置

[英]OpenLayers after call setCenter, map is still on 0,0 position

我試圖通過方法setCenter設置地圖中心,但仍然無法正常工作。 地圖不動。 我嘗試使用從投影到地圖投影的變換而沒有成功。 這是代碼的一部分。 謝謝。

<script type="text/javascript">
        var lon = 15.869378; //WGS LL84
        var lat = 49.528964;
        var zoom = 5;
        var map, layer;

        function init(){
            map = new OpenLayers.Map('map');
            layer = new OpenLayers.Layer.TMS("Name",
                   "[URL]",
                   { 'type':'png', 'getURL':get_my_url });

            map.addLayer(layer);

            var markers = new OpenLayers.Layer.Markers( "Markers" );
            map.addLayer(markers);
            markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(lon, lat).transform(
                new OpenLayers.Projection("EPSG:4326"),
                map.getProjectionObject())));

            map.setCenter(new OpenLayers.LonLat(lon, lat).transform(
                new OpenLayers.Projection("EPSG:4326"),
                map.getProjectionObject()), zoom);

        }                       
    </script>

我認為它可能是由錯誤的地圖投影引起的,在你的地圖中你應該設置地圖投影(我在例子中使用EPSG:900913),例如:

map = new OpenLayers.Map('testmap', {           
    numZoomLevels: 10,
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: new OpenLayers.Projection("EPSG: 4326")
    });

如果你不這樣做,map.getProjectionObject()仍然會得到EPSG:4326投影。

標記是否恰好顯示在它應該的位置?

無論如何,試試這個:

map.setCenter(new OpenLayers.LonLat(lon, lat).transform('EPSG:4326', 'EPSG:3857'), zoom);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM