如何在OpenLayers中沿着道路绘制一条线

 手浪用户2502939427_143 发布于 2023-02-13 10:41

在OSM基础层上,我绘制了一条跟随3个点的线,其中包含一个点数组和对象/方法OpenLayers.Geometry.LineString

现在,我希望这条线路走的路.在互联网上花了几个小时,无法找到解决方案.有这个对象吗?我是否必须首先从瓷砖中获取一些信息?

我可以请一些帮助吗?

下面是我如何绘制直线

function init() {

    var epsg4326 = new OpenLayers.Projection("EPSG:4326");
    var map = new OpenLayers.Map('map');

    var osmLayer = new OpenLayers.Layer.OSM("OSM");
    map.addLayer(osmLayer);
    var center = new OpenLayers.LonLat(-71.6, -33.7).transform(epsg4326,map.getProjectionObject());
    map.setCenter(center,4); 

    var points = new Array(
        new OpenLayers.Geometry.Point(-71.26,-32.47),
        new OpenLayers.Geometry.Point(-71.30,-32.97),
        new OpenLayers.Geometry.Point(-70.81,-32.89)
    );

    var myLine = new OpenLayers.Geometry.LineString(points).transform(epsg4326, map.getProjectionObject());
    var myLineStyle = {strokeColor:"#0500bd", strokeWidth:3};
    var myFeature = new OpenLayers.Feature.Vector(myLine, {}, myLineStyle);
    var myVector = new OpenLayers.Layer.Vector("line test");
    myVector.addFeatures([myFeature]);
    map.addLayers([myVector]);

}

scai.. 5

通常,OpenLayers只显示栅格图块,但您无法从中提取道路几何图形信息.您需要原始数据或其他预处理数据.OpenLayers和Leaflet都能够显示GPX文件.因此,一旦你有了GPX文件,其他一切都将变得简单.

不幸的是,您没有告诉我们您是想跟踪特定道路(基于名称/地址?还是基于坐标?),或者是否要显示沿着几条道路或完全不同的路线.

为了从OpenStreetMap中检索原始地理信息,有一个官方API,并且有一个Overpass API通常要快得多,并允许指定相当复杂的查询.但是显示这样的原始数据需要先进行大量的预处理.

如果要显示路径,则可以选择其中一个可用的OSM 在线路由器,例如OSRM.其中许多提供计算路线的GPX导出,然后您可以使用OpenLayers.

还有一些选择,但在不知道你实际想要做什么的情况下在这里展示它们会浪费时间.

1 个回答
  • 通常,OpenLayers只显示栅格图块,但您无法从中提取道路几何图形信息.您需要原始数据或其他预处理数据.OpenLayers和Leaflet都能够显示GPX文件.因此,一旦你有了GPX文件,其他一切都将变得简单.

    不幸的是,您没有告诉我们您是想跟踪特定道路(基于名称/地址?还是基于坐标?),或者是否要显示沿着几条道路或完全不同的路线.

    为了从OpenStreetMap中检索原始地理信息,有一个官方API,并且有一个Overpass API通常要快得多,并允许指定相当复杂的查询.但是显示这样的原始数据需要先进行大量的预处理.

    如果要显示路径,则可以选择其中一个可用的OSM 在线路由器,例如OSRM.其中许多提供计算路线的GPX导出,然后您可以使用OpenLayers.

    还有一些选择,但在不知道你实际想要做什么的情况下在这里展示它们会浪费时间.

    2023-02-13 10:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有