【问题标题】:How to get the speed limit of a road using OpenStreetMaps?如何使用 OpenStreetMap 获取道路的限速?
【发布时间】:2020-07-01 13:46:36
【问题描述】:

我正在尝试使用坐标获取指定道路的限速, 我尝试过使用 OpenStreetMaps,但我对这个 API 请求非常陌生,你将如何在 java 中向 API 请求信息? 谢谢。

【问题讨论】:

    标签: java api openstreetmap


    【解决方案1】:

    OSM 中的道路是更广泛的“道路”类别的一部分。例如,要查找伦敦附近 M25 的最大速度,您可以查询 HTTP GET on

    /api/0.6/way/27731013
    

    回复是

    <?xml version="1.0" encoding="UTF-8"?>
    <osm version="0.6" generator="CGImap 0.8.1 (12076 thorn-01.openstreetmap.org)" copyright="OpenStreetMap and contributors" attribution="http://www.openstreetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/">
     <way id="27731013" visible="true" version="17" changeset="69008803" timestamp="2019-04-08T14:10:29Z" user="ika-chan! UK-USA" uid="1016290">
      <nd ref="210993597"/>
      <nd ref="6390949913"/>
      <nd ref="204492"/>
      <nd ref="12086420"/>
      <nd ref="6390949910"/>
      <nd ref="204490"/>
      <nd ref="6390949967"/>
      <nd ref="6390949908"/>
      <nd ref="669805479"/>
      <tag k="active_traffic_management" v="yes"/>
      <tag k="bicycle" v="no"/>
      <tag k="carriageway_ref" v="A"/>
      <tag k="description" v="London Orbital Motorway"/>
      <tag k="foot" v="no"/>
      <tag k="highway" v="motorway"/>
      <tag k="highways_england:area" v="DBFO5"/>
      <tag k="horse" v="no"/>
      <tag k="int_ref" v="E 15;E 30"/>
      <tag k="lanes" v="4"/>
      <tag k="lit" v="yes"/>
      <tag k="maxspeed" v="70 mph"/>
      <tag k="maxspeed:variable" v="peak_traffic"/>
      <tag k="motor_vehicle" v="designated"/>
      <tag k="oneway" v="yes"/>
      <tag k="operator" v="Highways England"/>
      <tag k="ref" v="M25"/>
      <tag k="source:maxspeed" v="UK:motorway"/>
      <tag k="surface" v="asphalt"/>
     </way>
    </osm>
    

    最大速度为

    <tag k="maxspeed" v="70 mph"/>
    

    这可能并不总是存在。根据 OSM 论坛上的this post

    OSM 中的数据不完整,OSM 中只有约 7% 的高速公路有 最大速度标签。但是许多(所有?)国家都有默认的速度限制 根据道路分类,您可以从 高速公路标签值(或参考),所以只是因为 maxspeed 标签是 失踪并不意味着你不能推断出限速。然而 这需要您知道速度限制(或道路分类) 您感兴趣的国家/地区。

    【讨论】:

    • 我怀疑这 7% 是否仍然准确。这个号码是 2 岁。
    • @scai IMO,这个数字几乎无关紧要。它要么总是在那里,要么并不总是在那里。如果它不总是在那里,那么你就不能依赖它。所以这个数字是7%还是99%都没有关系;无论哪种情况,您都需要进行防御性编程。
    • 正确。然而,这是 OSM tags 的基本属性,不仅适用于 maxspeed 标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多