【问题标题】:Draw street using leaflet and osm使用 Leaflet 和 osm 绘制街道
【发布时间】:2020-04-14 03:54:13
【问题描述】:

我正在尝试创建在某些情况下显示街道(道路、路径...)的地图。 我只发现了如何绘制多边形和多段线,但是使用某种街道 ID 或地理数据绘制一条带有曲线的街道,这是我无法理解的。

有可能吗?还是我需要从传单切换?

谢谢。

【问题讨论】:

  • 听起来你的问题应该更具体。

标签: dictionary leaflet openstreetmap


【解决方案1】:

使用某种街道 ID 或曲线绘制一条街道 地理数据

使用传单(或任何其他前端库),没有直接的方法将地理数据(我想你的意思是经纬度点)转换为街道折线。这是有原因的:传单没有“理解”光栅图块中道路的几何形状。

但是,您仍然可以使用 lat-lng 坐标将街道折线添加到您的 OSM 底图中,使用实际街道几何图形,但您需要使用 API。

这个过程被称为地图匹配,有几个 API 可以做到这一点(不是免费的)。您将原始数据(lat-lng 坐标)发送到 API,并获得与实际 OSM 道路几何形状相匹配的折线响应。搜索OSM Map Matching API,您将完全找到一些可以开始使用的 API。

您还可以实施自己的后端解决方案。上述 API 之一,开源路由机 (http://project-osrm.org/) 可让您构建自己的后端服务。您可以更进一步,构建自定义后端解决方案。

【讨论】:

  • 非常感谢您的回答。我正在尝试您的方法,但我的数据类型称为“GEOMETRY”或“GEOM_LINE”,它只是一个长的 base16 字符串。你碰巧知道我能做些什么来使用你所描述的吗?在某些数据库中,用户可以单击眼睛图标并在地图上查看折线。下面是一个例子:0102000020E610000009000000DDCF29C8CF6E4140E010AAD4EC2740400342EBE1CB6E4140EEEC2B0FD2274040E4F560527C6E41405C2041F163264040F50F2219726E41403E93FDF3342640402E55698B6B6E4140B40419011526404068B114C9576E4140B9C2BB5CC4254040897D0228466E414063D34A2190254040D865 跨度>
  • 你是怎么得到那个字符串的?您使用了哪个 API?
  • 您拥有的字符串似乎是 PostGIS 几何类型(几何十六进制)。如果您使用 PostGIS,您可以使用 ST_AsGeoJSON() 函数将其转换为 GeoJSON 并将其添加到您的地图中。但我不确定我是否理解你的问题。您只想在传单地图中添加上述几何图形吗?
  • 最终是的,我想添加一层几何信息。我只是不太确定如何处理给定的字符串,因为我不是制作它的人,但我正在使用您关于字符串的信息与将它们发送给我的人交流,所以谢谢非常(!),我希望他对使用 ST_.. 功能有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多