0

有没有办法在openlayers中读取geojson并转换为WKT格式,我的问题是当我添加多个geojson作为矢量图层时,它们不会显示为一层,请告诉我如何显示多个geojson作为一部分一个向量层,我的代码是

for (var i = 0; i < content.GeoJsonFiles.length; i++) {
    //color = content.Settings.BreakStyles[totalcolor].Color;
    //totalcolor++;
    var id = content.GeoJsonFiles[i];
    // alert(content.GeoJsonFiles[i]);
    var geojson_layer = new OpenLayers.Layer.Vector("GeoJSON", {
        strategies: [new OpenLayers.Strategy.Fixed()],
        protocol: new OpenLayers.Protocol.HTTP({
        url:'i.geojson' ,
        format: new OpenLayers.Format.GeoJSON({})
        }), renderers: ["Canvas", "SVG", "VML"]
    });
    map.addLayer(geojson_layer);
}
4

1 回答 1

1
  • 'i.geojson'无论值i是什么,都将始终评估为“i.geojson”字符串。您可能想要content.GeoJsonFile[i].content,假设content实际上包含 URL,而不是原始 GeoJSON 数据
  • 您正在创建一个新的矢量图层,并在每次循环迭代中将其添加到地图中。你得到的(“它们不显示为一层”)正是你告诉代码要做的。

需要做的高级概述(假设.content包含原始 GeoJSON,我怀疑是这种情况):

var geoJsonLayer = new OpenLayers.Layer.Vector("GeoJSON", {
    // layer options
});

for (var i = 0; i < content.GeoJsonFiles.length; i++) {
    var feature = content.GeoJsonFiles[i].content;
    geojsonLayer.addFeatures([feature]);
}

map.addLayer(geoJsonLayer);

您需要澄清content.GeoJsonFiles实际包含的内容以及 WKT 与这一切的关系,以获得更准确的答案。

于 2013-10-14T13:45:20.247 回答