Сопоставление идентификаторов Google Building ID с идентификаторами зданий Open Street Map

Я работаю над проектом картирования, который включает в себя использование Tangram (удивительной библиотеки картирования webgl) для визуализации зданий на карте. Здания Tangram взяты из Open Street Maps и используют идентификаторы OSM:

Однако, как предсказывает судьба, мои данные поступают из Google Location API, который имеет свою собственную систему идентификаторов. Используя запрос как:

curl https://maps.googleapis.com/maps/api/geocode/json?address=Timble-Bridge,%20Yorkshire%20Britain&key=API_KEY_HERE

возвращается (обратите внимание на хеш идентификатора места):

{
  "results": [
    {
      "address_components": [
        {
          "long_name": "59",
          "short_name": "59",
          "types": [
            "street_number"
          ]
        },
        {
          "long_name": "Long Lane",
          "short_name": "Long Ln",
          "types": [
            "route"
          ]
        },
        {
          "long_name": "London",
          "short_name": "London",
          "types": [
            "postal_town"
          ]
        },
        {
          "long_name": "Greater London",
          "short_name": "Greater London",
          "types": [
            "administrative_area_level_2",
            "political"
          ]
        },
        {
          "long_name": "England",
          "short_name": "England",
          "types": [
            "administrative_area_level_1",
            "political"
          ]
        },
        {
          "long_name": "United Kingdom",
          "short_name": "GB",
          "types": [
            "country",
            "political"
          ]
        },
        {
          "long_name": "EC1A 9EJ",
          "short_name": "EC1A 9EJ",
          "types": [
            "postal_code"
          ]
        }
      ],
      "formatted_address": "59 Long Ln, London EC1A 9EJ, UK",
      "geometry": {
        "location": {
          "lat": 51.5192377,
          "lng": -0.0998815
        },
        "location_type": "ROOFTOP",
        "viewport": {
          "northeast": {
            "lat": 51.52058668029149,
            "lng": -0.09853251970849797
          },
          "southwest": {
            "lat": 51.51788871970849,
            "lng": -0.101230480291502
          }
        }
      },
      "partial_match": true,
      "place_id": "ChIJ5UYg9FMbdkgRBOslATQK-ok",
      "types": [
        "cafe",
        "establishment",
        "food",
        "point_of_interest"
      ]
    }
  ],
  "status": "OK"
}

Теперь мне интересно, есть ли какая-нибудь существующая база данных, которая сопоставляет идентификаторы OSM с идентификаторами местоположения Google. Если кто-либо знает о какой-либо такой службе или о любом сопоставлении более высокого порядка, которое можно использовать для детерминированного сопоставления OSM и идентификаторов Google с услугой идентификации более высокого порядка, я был бы очень признателен за любую информацию, которую вы можете предложить.

1 ответ

Решение

Нет, такой базы данных не существует и она не может существовать.

Такое отображение потребовало бы, чтобы:

  • Оба набора данных открыты. OSM открыт, а данные Google - нет.
  • Здания отображаются таким же образом. Это не всегда так. Здание в Google может состоять из нескольких зданий в OSM, и наоборот.
  • Идентификаторы стабильны. Я не знаю об идентификаторах Google, но идентификаторы в OSM могут измениться.
Другие вопросы по тегам