我在一个简单的地图上使用 OpenLayers 的编辑工具栏。到目前为止一切正常,我可以绘制点、线和多边形。
通过在给定地图上绘制一个简单的线串,我得到以下结果:
我真正想要的是,OpenLayers 会自动将点添加到线串中,如下所示:
那可能吗?
我在一个简单的地图上使用 OpenLayers 的编辑工具栏。到目前为止一切正常,我可以绘制点、线和多边形。
通过在给定地图上绘制一个简单的线串,我得到以下结果:
我真正想要的是,OpenLayers 会自动将点添加到线串中,如下所示:
那可能吗?
您需要一个在绘图结束时触发的函数 函数将遍历新创建的线的每个顶点并创建一个点(我建议在新层中)。你想把它保存在某个地方吗?
map.layers[1].events.register('sketchcomplete', this, extractVertex);
//f is an object sketched
function extractVertex(f) {
var arrayOfPointsInWKT = [];
var vert = f.feature.geometry.getVertices();
for(var i = 0; i < vert.length; i++) {
arrayOfPointsInWKT.push(vert[i].toString());
}
//ajax call to the script that will save a table it in the database
}
您应该查看可以在此处找到的功能样式文档(StyleMaps、基于规则的样式等) 。它会给你你所需要的。
编辑
正如我回忆的那样,点是 LineStrings 的一部分,看来我错了......我现在看到它是您正在寻找的点,而不是它们的样式。对不起,放错了答案。
我在 GIS 网站上发现了一个看起来可以使用的帖子。祝你好运!
https://gis.stackexchange.com/questions/28242/show-a-collection-of-linestrings-with-labels