gpt4 book ai didi

mysql - 使用 WKT 绘制多边形 - 使用 OpenLayers 的 XML 文件

转载 作者:行者123 更新时间:2023-11-29 22:37:22 24 4
gpt4 key购买 nike

我用 PHP 和 Mysql 创建了这个 XML 文件:

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

我想绘制所有多边形以根据“区域”数据创建专题 map 。

最佳答案

只需解析 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
});
});

关于mysql - 使用 WKT 绘制多边形 - 使用 OpenLayers 的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com