0

PHP と Mysql で作成されたこの XML ファイルがあります。

XML ファイル

これを使用して、OpenLayers を使用してすべてのポリゴンを描画するにはどうすればよいですか? 私はいくつかの調査を行い、WKT の例を見つけましたが、それらの例では 1 つのポリゴンのみを使用していました。

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))');

すべてのポリゴンを描画して、「エリア」データに基づいて主題図を作成したいと考えています。

4

1 に答える 1

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
    });
});
于 2015-04-08T04:35:18.333 に答える