我正在做一个项目,我们需要知道街道的方向(罗盘)。
实际上,我们只有一个GeoPoint(经纬度和航向),我们计划使用反向Geocoding来告诉它在哪里(哪条街?);然后我们想知道他的前进方向是否错误。

Google Maps,OSM和Mapquest都在街道上显示箭头,指示其方向。我猜他们是用动态的方式绘制它们的,所以他们必须知道它们的角度。这就是我想知道的(如果可能)

提前致谢!



编辑:

我在想,也许他们把这条街切成小块,然后他们说:“这条街的轨迹从(lat1; lng1)到(lat2; lng2)”会给该轨迹指明方向,以便他们可以画出一条箭。同样,并非每条街道都是一条直线,因此其方向不仅是一条直线,还取决于您所在的街道部分。

最佳答案

使用OpenStreetMap,可以确定当前位置的街道是否为单向街道以及用户是否朝错误的方向行驶。

Overpass API允许下载给定bounding box(您当前的位置)内的对象。要下载街道,您必须指定highway tag,单向街道以oneway tag标记。理想情况下,您应该阅读一些有关OSM的基本elementstags的信息,以了解OSM的内部工作方式。然后开始使用overpass turbo体验一下,它是Overpass API的一个不错的Web前端。

看到这个example query on overpass turbo:

[out:json][timeout:25];
// gather results
(
  way["highway"](51.04525236350533,13.778518438339233,51.04603818288315,13.779301643371582);
);
// print results
out body;
>;
out skel qt;

它在给定的边界框中检索带有Highway标签的所有道路。

请注意,如果将结果包含在给定的边界框中,或者边界框都没有太小,则结果可能包含多个高速公路。

关于google-maps - 是否可以知道街道方向(指南针)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28844173/

10-12 12:18