【问题标题】:Look for specified place type with OpenStreetMap and Nominatim使用 OpenStreetMap 和 Nominatim 查找指定的地点类型
【发布时间】:2020-04-07 16:24:13
【问题描述】:

在我的应用程序中,我将 Leaflet 与 OpenStreetMap 一起使用。我还使用 Nominatim 来获取地点详细信息。我想看看这个地方是不是加油站。 但是,当我指向加油站并获取地点详细信息时,JSON 文件通常具有不同的“类型”属性。 可以是:

type: "fuel"   <-- this is great
or
type: "convenience"
or
type: "yes"
or maybe even other

我能否以某种方式指定该地点是否真的是加油站?

加油站的 JSON 输出示例 https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=50.0487556&lon=21.999057381458194

place_id: 143194204, licence: "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright", osm_type: "way", osm_id: 230603036, lat: "50.0487556", …}
place_id: 143194204
licence: "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright"
osm_type: "way"
osm_id: 230603036
lat: "50.0487556"
lon: "21.999057381458194"
place_rank: 30
category: "shop"
type: "convenience"
importance: 0
addresstype: "shop"
name: "Orlen"
display_name: "Orlen, 10, Warszawska, 1000-Lecia, Rzeszów, województwo podkarpackie, 35-205, Polska"
address: {convenience: "Orlen", house_number: "10", road: "Warszawska", suburb: "1000-Lecia", city: "Rzeszów", …}
boundingbox: (4) ["50.0486885", "50.0488243", "21.9989449", "21.9991699"]
__proto__: Object

我考虑过将 Google Places API 与 Geocoding API 一起使用,但 Geocoding 需要计费帐户,所以我不会使用它。

编辑:

感谢下面的评论,我设法通过使用来自 nominatim 反向地理编码调用的 osm_id 从 OSM 获取原始数据。只需使用: http://overpass-api.de/api/interpreter?data=[out:json];way(MY_OSM_ID);out;

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow。不完全清楚你在这里问什么?如果您问:“您是否有一个数据库,其中包含有关某个位置是否是加油站的信息”?如果是这样,那么我认为 StackOverflow 不是问的正确地方。考虑参观 (stackoverflow.com/tour) 了解更多关于这里通常提出和回答的问题类型。
  • 也许有一种方法可以获得更详细的地点描述,带有更多标签,或者我可以使用不同的 API 来获取地点详细信息?

标签: javascript leaflet openstreetmap reverse-geocoding nominatim


【解决方案1】:

object from your question 既是加油站又是便利店。它是taggedamenity=fuelshop=convenience。然而,Nominatim 必须决定要打印哪个type,而且显然便利比燃料更重要。

如果您想检查特定对象的标签,那么 Nominatim 可能是错误的选择。 Nominatim 是一个地理编码器,用于将名称转换为地理坐标(地理编码)或反之亦然(反向地理编码)。如果您已经知道 OSM ID 和 element 类型,那么您可以直接从 OSM 下载其原始数据以检查所有原始标签。如果您只知道大致位置,那么您可以使用Overpass API 下载该区域的特定 POI(例如加油站)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多