簡體   English   中英

OpenLayers 2,GeoJSON無法獲取坐標才能正常工作

[英]OpenLayers 2, GeoJSON cant get coordinates to work

我正在嘗試在我的地圖上顯示一些多邊形,我是整個OpenLayers地圖geojson的新手,請保持柔和:)。

首先是什么工作:

vector1 = new OpenLayers.Layer.Vector("GeoJSON1",
{
    projection       : "EPSG:4326",
    strategies       : [new OpenLayers.Strategy.Fixed()],
    protocol         :  new OpenLayers.Protocol.HTTP({
                            url: "test.php",
                            format: new OpenLayers.Format.GeoJSON()
                        })
});

這段代碼有效,來自test.php的geojson顯示在服務器上應有的位置。 但是我嘗試到達的geojson在另一台服務器上並且拋出錯誤(我知道我可以設置標頭並且可以工作),但是我不想這樣做。

這不起作用:

var geojs_format = new OpenLayers.Format.GeoJSON();
var geojsval= {
                "type": "Polygon", 
                "coordinates": 
                    [[[11.0878902207, 45.1602390564], 
                      [14.931640625, 40.9228515625], 
                      [0.8251953125, 41.0986328125], 
                      [7.63671875, 48.96484375], 
                      [11.0878902207, 45.1602390564]]]
            };
vector = new OpenLayers.Layer.Vector("GeoJSON",{projection:"EPSG:4326"});
vector.addFeatures(geojs_format.read(geojsval));

這是行不通的-即使以相同的方式(或至少對我來說是指定的)指定投影,它也會在不同的位置顯示多邊形。

我解決了 創建OpenLayers.Format.GeoJSON時,您可以像這樣進行特定的投影...

var geojs_format = new OpenLayers.Format.GeoJSON({
            'internalProjection': new OpenLayers.Projection("EPSG:900913"),
            'externalProjection': new OpenLayers.Projection("EPSG:4326")
        });

這樣就解決了問題。

暫無
暫無

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

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