gpt4 book ai didi

javascript - Open Layers 2 从 Ajax 响应创建和添加特征到矢量图层

转载 作者:行者123 更新时间:2023-11-30 16:28:50 24 4
gpt4 key购买 nike

如标题所示,创建特征并将其添加到已创建的矢量图层中。我正在从服务器获取 GeoJSON 并尝试以某种方式添加到矢量图层,但我无法让它工作......所以基本上我在问如何从我的 GeoJSON 获取 Feature 元素,以便我可以将它添加到矢量图层。我目前拥有的..

这是我从服务器获取的 GeoJSON:

{"type":"MultiPolygon","coordinates":[[[[20.5629940201429,48.9488601183337],[20.5630121528311,48.9489447276126],[20.563289335522,48.9489141101973],[20.563260061873,48.9488286413488],[20.5629940201429,48.9488601183337]]]]}

接下来,我在 JavaScript 中使用了 addVector 函数,我正在尝试施展魔法。(变量 GeoJS 是从服务器获取的 GeoJSON)

function addVector(geoJS){
var feature = new OpenLayers.Feature.Vector( new OpenLayers.Geometry.MultiPolygon(geoJS) );
vector = new OpenLayers.Layer.Vector("Magic");
map.addLayer(vector);
vector.addFeatures([feature]);
}

是的,我知道我创建功能的第二行是错误的,但我不能把它改正,所以我想我现在写的 id 并不重要......我用 var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-70.702451, 42.374473); 尝试过,它在 map 上的工作位置不是我想要的位置,但是我知道我必须用投影做点什么……现在没关系了。

顺便说一句,我有这个

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

这是有效的,位置是我想要的位置,它是完美的,除了它只在我在我的域上发出请求时有效,而我尝试访问的服务器在另一个服务器上(我知道我可以设置标题并且它会起作用)但是我不想这样做。

所以基本上我是在问如何从我的 GeoJSON 中获取功能。我是 OpenLayers 的新手,所以如果我问的问题很明显,我很抱歉。

最佳答案

使用 the official example 的简化版本:

var inputGeoJson = '...some-GeoJSON-here...';
var geojson_format = new OpenLayers.Format.GeoJSON();
var vector_layer = new OpenLayers.Layer.Vector();
map.addLayer(vector_layer);
vector_layer.addFeatures(geojson_format.read(inputGeoJson));

您可以在 GeoJSON class documentation 中找到更多详细信息.

关于javascript - Open Layers 2 从 Ajax 响应创建和添加特征到矢量图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com