2013-10-14 6 views
0

Есть ли способ прочитать geojson в openlayers и преобразовать в WKT-формат, моя проблема в том, что когда я добавляю несколько географических объектов в качестве векторного слоя, они не отображаются как один слой, любезно говорят мне, как отображать несколько в формате GeoJSON как часть одного векторного слоя, мой кодopenlayers geojson read as wkt

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
  • 'i.geojson' всегда будет оценивать на «i.geojson» строку, независимо от того, что значение i есть. Вы, вероятно, хотели 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 имеет отношение ко всему этому для более точного ответа.

Смежные вопросы