Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OpenLayers 2,GeoJSON无法获得坐标_Javascript_Coordinates_Openlayers_Geojson - Fatal编程技术网

Javascript OpenLayers 2,GeoJSON无法获得坐标

Javascript OpenLayers 2,GeoJSON无法获得坐标,javascript,coordinates,openlayers,geojson,Javascript,Coordinates,Openlayers,Geojson,我正在尝试在我的地图上显示一些多边形,我是全新的OpenLayers地图geojson,所以请温柔一点: 首先,什么工作: vector1 = new OpenLayers.Layer.Vector("GeoJSON1", { projection : "EPSG:4326", strategies : [new OpenLayers.Strategy.Fixed()], protocol : new OpenLayers.Pro

我正在尝试在我的地图上显示一些多边形,我是全新的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")
        });

这就解决了问题。

以后,请不要交叉发帖。有关详细信息,请参阅。