从此处地理编码的城市获取州的 placeId api

Get placeId of state from city in here geocode api

我对德国各州和城市的地理编码有疑问。我无法获得特定县或州的正确地点 ID。让我们以一个县为例:奥尔登堡。

奥尔登堡县在此处存在两次 API。

  1. Oldenburg (Oldb.) - 这是 Oldenburg
  2. 市所在的县
  3. Oldenburg - 这是奥尔登堡市周边地区的县

所以我现在想在展位独特的奥尔登堡县之间推迟。但是因此,我需要正确的 herePlaceId 用于展位县。但我无法为此处-api 形成正确的请求,因此我无法为他们的展位获取正确的 placeId。 Oldenburg (Oldb.) 作为 Oldenburg 市的县工作得很好,但如何才能为 Oldenburg-City 周围的县 Oldenburg 获得正确的 herePlaceId

Google 正确理解了我的搜索:

这是奥尔登堡市周边地区的 Oldenburg 县:https://www.google.com/maps/place/Oldenburg/@52.9845275,8.0922129,10z/data=!3m1!4b1!4m5!3m4!1s0x47b72f168effaa95:0xd6a3061c95f9bd2b!8m2!3d52.9654037!4d8.386907

这是城市本身的县 Oldenburg (Oldb.)https://www.google.com/maps/place/Oldenburg/@53.0578722,8.3356219,11.25z/data=!4m5!3m4!1s0x47b6de53b5b669b3:0xed1ccb1bad854865!8m2!3d53.1434501!4d8.2145521

我希望你明白我的意思。作为第二个示例,您可以使用 Sachsen。每当您请求 Sachsen 到 here-geocoding-api 时,您将返回德国南部的一个城市,并且没有关于州 Sachsen.

的信息

有没有办法从 api 返回状态信息?

[
  {
    formattedAddress: 'Sachsen bei Ansbach, Bayern, Deutschland',
    latitude: 49.28949,
    longitude: 10.66038,
    country: 'Deutschland',
    countryCode: 'DE',
    state: 'Bayern',
    county: 'Ansbach (Landkreis)',
    city: 'Sachsen bei Ansbach',
    zipcode: '91623',
    district: null,
    streetName: null,
    streetNumber: null,
    building: null,
    extra: { herePlaceId: 'NT_jFqf4FFetzruKjei6.HGfA', confidence: 1 },
    administrativeLevels: { level1long: 'Bayern', level2long: 'Ansbach (Landkreis)' },
    provider: 'here'
  }
]

编辑 - 2020 年 4 月 14 日 | 13:23Uhr 当我玩 api 时,我发现我可以通过使用英语请求获得 Sachsen 的正确 placeId。所以我没有请求 Sachsen, DeutschlandSaxony, Germany,做到了,我得到了状态 Sachsen 的正确 placeId。 Oldenburg 的问题仍然存在

有两种方法可以实现:


1.如果您知道您正在准确搜索国家或州或县等,您可以使用 Geocoder API:

对于 Oldenburg 县案例(结果是 2 个县):https://geocoder.ls.hereapi.com/6.2/geocode.json?&county=Oldenburg&apikey=YOUR_API_KEY

对于Sachsen州情况(结果为1个州):https://geocoder.ls.hereapi.com/6.2/geocode.json?&state=Sachsen&apikey=YOUR_API_KEY


2。如果您不知道查询类型,可以使用 Geocoder Autocomplete API 为您提供多个建议,您可以通过 matchLevel 属性. 过滤这些建议在您的 Oldenburg 案例中, matchLevel应该等于"county":

对于 Oldenburg 县案例(最多 5 个结果): https://autocomplete.geocoder.ls.hereapi.com/6.2/suggest.json?query=Oldenburg&maxresults=5&apikey=YOUR_API_KEY

响应包含 5 个结果,其中两个有 属性 "matchLevel": "county":

  • 德国,奥尔登堡(Oldb.)
  • 德国奥尔登堡
.
.
{
  "label": "Deutschland, Oldenburg (Oldb.)",
  "language": "de",
  "countryCode": "DEU",
  "locationId": "NT_UgRRHQATr.tTMA-5pu0KcC",
  "address": {
    "country": "Deutschland",
    "state": "Niedersachsen",
    "county": "Oldenburg (Oldb.)"
  },
  "matchLevel": "county"
},
{
  "label": "Deutschland, Oldenburg",
  "language": "de",
  "countryCode": "DEU",
  "locationId": "NT_NrK.-.wF217Ne36759bEwC",
  "address": {
    "country": "Deutschland",
    "state": "Niedersachsen",
    "county": "Oldenburg"
  },
  "matchLevel": "county"
},
.
.

如果有帮助请告诉我。