Php 如何在谷歌地图API上检查地址是否在区域内
我有一个地址字符串,例如“新西兰旺加努伊冈维尔瑞士大道12号” 考虑到这个地址,我需要确定这个地址是在新西兰的北岛还是南岛 如果我把地址传给谷歌地图api,我得到的数据就在下面,不幸的是,它没有告诉我它在哪个岛上。那么,我如何检查这个Php 如何在谷歌地图API上检查地址是否在区域内,php,google-maps-api-3,region,Php,Google Maps Api 3,Region,我有一个地址字符串,例如“新西兰旺加努伊冈维尔瑞士大道12号” 考虑到这个地址,我需要确定这个地址是在新西兰的北岛还是南岛 如果我把地址传给谷歌地图api,我得到的数据就在下面,不幸的是,它没有告诉我它在哪个岛上。那么,我如何检查这个 { "results": [ { "address_components": [ { "long_name": "12",
{
"results": [
{
"address_components": [
{
"long_name": "12",
"short_name": "12",
"types": [
"street_number"
]
},
{
"long_name": "Swiss Avenue",
"short_name": "Swiss Ave",
"types": [
"route"
]
},
{
"long_name": "Gonville",
"short_name": "Gonville",
"types": [
"sublocality",
"political"
]
},
{
"long_name": "Wanganui",
"short_name": "Wanganui",
"types": [
"locality",
"political"
]
},
{
"long_name": "Manawatu-Wanganui",
"short_name": "Manawatu-Wanganui",
"types": [
"administrative_area_level_1",
"political"
]
},
{
"long_name": "New Zealand",
"short_name": "NZ",
"types": [
"country",
"political"
]
},
{
"long_name": "4501",
"short_name": "4501",
"types": [
"postal_code"
]
}
],
"formatted_address": "12 Swiss Avenue, Gonville, Wanganui 4501, New Zealand",
"geometry": {
"location": {
"lat": -39.9444245,
"lng": 175.0239575
},
"location_type": "ROOFTOP",
"viewport": {
"northeast": {
"lat": -39.9430755197085,
"lng": 175.0253064802915
},
"southwest": {
"lat": -39.9457734802915,
"lng": 175.0226085197085
}
}
},
"types": [
"street_address"
]
}
],
"status": "OK"
}
一种选择是获取两个岛屿的多边形,并在地理位置上进行多边形点分析 及 (使用geoxml3和gadm.org中修改的KML) ===============使用融合表的旧选项不再有效============= (注意:不再工作,Fusion Layers于2019年12月被拒绝)
(使用融合表中的自然地球数据集和“州到岛”地图)(注意:也不再有效)使用谷歌地图的API 您可以从say获得新西兰北岛的placeId,即
ChIJhXgO3F4Uam0RdyMcnMutKMo
然后使用地理代码库获取边界,并使用测试另一个lat/lng是否在这些边界内
const geocode = async placeId => {
const geocoder = new window.google.maps.Geocoder();
return new Promise((resolve, reject) => {
geocoder.geocode(
{
placeId
},
(results, status) => {
resolve(results[0]);
}
);
});
};
const placeDetails = await geocode('ChIJhXgO3F4Uam0RdyMcnMutKMo');
const somePlace = getPlaceDetails(someOtherPlaceId);
const isInNorthIsland = placeDetails.geometry.bounds.contains(somePlace.geometry.location);
有没有找到解决这个问题的好办法?我正在寻找API来实现这一点,但我提出了nill