0

Je travaille sur un projet de cartographie qui consiste à utiliser Tangram (une impressionnante bibliothèque de cartographie webgl) pour visualiser les bâtiments sur une carte. Les bâtiments Tangram proviennent de Open Street Maps, et utiliser les identifiants OSM:Mapper les ID de construction de Google à ceux de l'immeuble Open Street Map

enter image description here

Comme la fortune aurait il cependant, mes données provient de l'API de localisation de Google, qui a son propre système d'identification. En utilisant une demande comme:

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

on obtient de retour (note au bas du lieu de hachage id):

{ 
    "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.1
      } 
     } 
     }, 
     "partial_match": true, 
     "place_id": "ChIJ5UYg9FMbdkgRBOslATQK-ok", 
     "types": [ 
     "cafe", 
     "establishment", 
     "food", 
     "point_of_interest" 
     ] 
    } 
    ], 
    "status": "OK" 
} 

Je me demande maintenant s'il y a une base de données existante qui associe id OSM à Identifiant de localisation Google Si quelqu'un connaît un tel service ou un mappage d'ordre supérieur que l'on peut utiliser pour mapper de manière déterministe les identifiants OSM et Google à un service d'identification d'ordre supérieur, je vous serais très reconnaissant pour toute information que vous pourriez nous donner.

Répondre

1

Non, une telle base de données n'existe pas et ne peut pas exister.

Une telle cartographie nécessiterait que:

  • Les deux ensembles de données sont ouvertes. OSM est ouvert mais les données de Google ne le sont pas.
  • Les bâtiments sont mappés d'une manière similaire. Ce n'est pas toujours le cas. Un bâtiment dans Google peut se composer de plusieurs bâtiments dans OSM, et vice versa.
  • Les ID sont stables. Je ne connais pas les identifiants Google, mais les ID dans OSM peuvent changer.
+0

Merci @scai. Connaissez-vous les conditions dans lesquelles les identifiants dans OSM changent? – duhaime

+0

@duhaime Par exemple, si un bâtiment est divisé en deux bâtiments distincts, par ex. augmenter le niveau de détail dans OSM. Ou si les bâtiments fusionnent parce qu'ils ont été incorrectement cartographiés des bâtiments séparés auparavant. – scai

+0

merci beaucoup, c'est bon à savoir ... – duhaime