将Google建筑物ID映射到开放街道地图建筑物ID
问题描述:
我正在研究一个涉及使用Tangram(令人敬畏的webgl映射库)以在地图上显示建筑物的地图项目。七巧板大楼来自开放街道地图,并使用OSM的ID:将Google建筑物ID映射到开放街道地图建筑物ID
由于运气将有它虽然,我的数据来自谷歌的位置API,它有自己的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"
}
我现在想知道如果有这么OSM的ID映射到任何现存的数据库:
curl https://maps.googleapis.com/maps/api/geocode/json?address=Timble-Bridge,%20Yorkshire%20Britain&key=API_KEY_HERE
一个(在底部的位置ID散注)回来Google位置ID的。如果有人知道任何此类服务或任何可用于确定性地将OSM和Google ID映射到更高级识别服务的更高阶映射,我将非常感谢您提供的任何洞察力。
答
不,这样的数据库不存在,它不能存在。
这种映射将要求:
- 两个数据集是开放的。 OSM是开放的,但Google的数据不是。
- 建筑物以类似的方式映射。这并非总是如此。 Google中的建筑物可能由OSM中的多个建筑物组成,反之亦然。
- ID是稳定的。我不知道Google的ID,但OSM中的ID可以更改。
谢谢@scai。你知道OSM中id的改变的条件吗? – duhaime
@duhaime例如,如果一栋建筑物分成两个独立的建筑物,以提高OSM的细节水平。或者如果建筑物之所以合并,是因为它们以前被错误地映射过一个单独的建筑物。 – scai
非常感谢,这是很好的知道... – duhaime