2015-04-07 64 views
0

XML文件我有PHP和MySQL創建這個XML文件:繪製多邊形與WKT - 使用的OpenLayers

XML File

如何使用此畫使用的OpenLayers的所有多邊形?我做了一些研究,發現用實例WKT,但這些例子,他們只用一個多邊形:

var feature = format.readFeature(
'POLYGON((10.689697265625 -25.0927734375, 34.595947265625 ' + 
'-20.1708984375, 38.814697265625 -35.6396484375, 13.502197265625 ' + 
'-39.1552734375, 10.689697265625 -25.0927734375))'); 

我想提請所有多邊形來創建基於「區域」數據的專題地圖。

回答

0

只需解析XML並遍歷標記標記即可。事情是這樣的:

var xml = new OpenLayers.Format.XML(), 
    wkt = new OpenLayers.Format.WKT(), 
    vectorLayer = new OpenLayers.Layer.Vector('features'), 
    doc, markers, i, feature; 
OpenLayers.Request.GET({ 
    url: "features.xml", 
    success: function(request) { 
     doc = xml.read(request.responseText); 
     markers = doc.documentElement.getElementsByTagName('marker'); 
     for (i = 0; i < markers.length; i++) { 
      feature = wkt.read(markers[i].attributes.geometry.nodeValue); 
      vectorLayer.addFeatures([feature]); 
     } 
    } 
}); 

編輯:如果您正在使用的OpenLayers 3,請嘗試以下操作:

var wkt = new ol.format.WKT(), 
    vectorLayer, 
    source, 
    features = [], 
    feature, 
    markers; 
//make sure that jQuery is included 
$.ajax('features.xml').then(function(response) { 
    var markers = response.getElementsByTagName('marker'); 
    for (var i = 0; i < markers.length; i++) { 
     feature = wkt.readFeature(markers[i].attributes.geometry.nodeValue); 
     features.push(feature); 
    } 
    source = new ol.source.Vector({ 
     features: features 
    }); 
    vectorLayer = new ol.layer.Vector({ 
     source: source 
    }); 
}); 
+0

喜伊戈爾 - Chernikov擔任,我想你的代碼,但我不明白的腳本工作。 我得到這個錯誤使用Chrome: 未捕獲TypeError:無法讀取屬性'closure_uid_175869212'undefined localhost /:38未捕獲TypeError:undefined不是函數 – Seph1603

+0

你使用OpenLayers 3嗎?請參閱編輯我的答案 –

+0

我不斷收到此錯誤:無法讀取屬性'closure_uid_257584869'的未定義 我不知道我在做什麼錯誤https://jsfiddle.net/seph1603/yu2hywmt – Seph1603