【问题标题】:Draw line from start of road to end given it's latlng从道路起点到终点画线,因为它是 latlng
【发布时间】:2014-11-30 17:45:57
【问题描述】:

我想突出显示某个半径内用户周围的所有道路。

我已经研究出如何获得道路的纬度/经度甚至长度,但我正在努力研究如何从一条道路的起点画线到同一条道路的终点仅给出所述道路的纬度/经度。

countryCode:"GB"
distance:195.450718073417
gid:101823433
isIn:"Portsmouth"
lat:50.79336325
length:58.7727976883358
lng:-1.0940351000000001
name:"Colpoy Street"
oneWay:false
openstreetmapId:12929127
streetType:"RESIDENTIAL"

http://services.gisgraphy.com/street/streetsearch?format=json&lat=50.7913547&lng=-1.0944082&radius=200&streettype=&distance=true

我见过各种“捕捉”到道路的解决方案,但这需要一个起点和终点纬度/经度,我只有道路位置的单一纬度/经度。

我对映射 API 的使用并不挑剔,尽管我更喜欢使用 Leaflet.js/OSM。这可能吗?

【问题讨论】:

  • 您能否更具体地谈谈您的实际问题?甚至Leaflet's quickstart guide 也解释了如何绘制简单的形状。
  • 当然。所以我有一条路的纬度/经度。我怎样才能画一条覆盖那条路的整个长度的线?要绘制一条线,我需要一个起点和一个终点(带有可选的“道路捕捉”),但我不知道如何找出道路的起点/终点 lat/lng。
  • 如果您还没有数据,则无法设置自己的路由服务器并获取最近的道路,例如通过广度优先搜索。使用 GraphHopper,这应该很容易实现(目前还没有用于这种“探索”的 HTTP API)
  • 抱歉,我无法关注你。在您的问题中,您写了 我已经弄清楚如何获得道路的纬度/经度,所以您已经有了起点和终点,不是吗?起点和终点始终是 OSM 中路的第一个和最后一个节点。
  • 对不起,我正在使用这个 API 来绕过我的位置。它只给了我一个 lat/lng services.gisgraphy.com/street/…

标签: google-maps leaflet openstreetmap


【解决方案1】:

您将需要一个服务器组件,该组件使用您所需道路的几何形状来回复您的请求。对于原型设计,您可以使用 OverpassAPI 并在新的 Leaflet 层中显示所需对象的 geoJSON 答案。

澄清一下:您需要添加一个新的矢量图层,因为您必须在栅格地图上使用带有道路网络的单独数据源。

【讨论】:

  • 完美,非常感谢。 OverpassAPI 甚至具有“环绕”样式查找,因此我也不需要使用 2 个 API。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
相关资源
最近更新 更多