openlayers geojson读作wkt

时间:2013-10-14 10:55:51

标签: javascript openlayers geojson

有没有办法在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);
}

1 个答案:

答案 0 :(得分:1)

  • 'i.geojson'将始终评估为“i.geojson”字符串,无论i的值是多少。你可能想要content.GeoJsonFile[i].content,假设content实际上包含网址,而不是原始的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与所有这些内容的关系,以获得更准确的答案。