如何在openlayers中绘制的线串上显示点

如何在openlayers中绘制的线串上显示点,openlayers,Openlayers,我在一张简单的地图上使用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

}
map.layers[1].events.register('sketchcomplete',this,extractVertex);
//f是绘制的对象
函数提取顶点(f){
var arrayOfPointsInWKT=[];
var vert=f.feature.geometry.getVerts();
对于(变量i=0;i
是,创建所需几何图形后,所有点和线的坐标应保存在数据库中。绘制直线后如何启动点绘制功能?请参见编辑。map.layers[1]必须替换为矢量层。我保存到数据库,将坐标作为WKT字符串发送到php脚本,然后在SQL:ST_GeomFromText(my_WKT_字符串)中,我将在此网站上检查解决方案,并很快发布我的经验