У меня есть
Массив адресов пользователейПолучить Lat, LNG база по адресу
array:5 [▼
0 => array:2 [▼
"name" => " Admin"
"address" => "111 Park AveFloor 4 New York, NY"
]
1 => array:2 [▼
"name" => "User A"
"address" => "12 Main Street Cambridge, MA"
]
2 => array:2 [▼
"name" => "Apple HQ"
"address" => "1 Infinite Loop Cupertino, California"
]
3 => array:2 [▼
"name" => "Google MA"
"address" => "355 Main St Cambridge, MA"
]
4 => array:2 [▼
"name" => "site HQ"
"address" => "300 Concord Road Billerica, MA "
]
]
Моя цель
, чтобы захватить lat
и lng
каждого адреса, и построить что-то вроде этого
[
["Admin", 18.3114513, -66.9219513, 0],
["User A", 25.3253982, 44.5503772, 1],
["Apple HQ", 33.0241101, 39.5865834, 2],
["Google MA", 43.9315743, 20.2366877, 3],
["site HQ", 32.683063, 35.27481, 4]
]
, поэтому я могу нарисовать их в Google Map.
Я пробовал:
делая завиток к
https://maps.googleapis.com/maps/api/geocode/json?address='.$address.'&key=***
$data = shell_exec('curl '.$url);
Я получил
это обратно в ответ, после того, как расшифровывают это
$data = json_decode($data);
{#278 ▼
+"results": array:1 [▼
0 => {#298 ▼
+"address_components": array:2 [▶]
+"formatted_address": "PR-111, Puerto Rico"
+"geometry": {#300 ▼
+"bounds": {#301 ▶}
+"location": {#304 ▼
+"lat": 18.3114513
+"lng": -66.9219513
}
+"location_type": "GEOMETRIC_CENTER"
+"viewport": {#305 ▶}
}
+"place_id": "ChIJrdMXucS4AowRF4jHu2ji58U"
+"types": array:1 [▶]
}
]
+"status": "OK"
}
Как вы можете видеть, теперь я могу получить доступ к лату, LNG путем доступа к
$location = $data->results[0]->geometry->location;
Вы могли бы сказать, если вы можете получить доступ к нему - почему вы все еще задаете этот вопрос?
Хорошо, что lat, lng данные, которые я получаю от ответа API, вызывают неправильный маркер карты Google.
Я не уверен, почему/как это неправильно, но я уверен, что все мои адреса пользователей находятся в США, и вот мой результат маркера Google Map. Ни один из них не показывался внутри США.
Google Map Результат
Я бегу из идей в настоящее время.
Любые советы/подсказки/советы будут иметь для меня многого.
Update
Благодаря этому answer
я смогу получить лат, LNG и сюжет правильные маркеры на моей карте Google в настоящее время.
вы ищете несколько общий адрес. что произойдет, если вы пометите «США» на конец их? –
Хмм хороший звонок, позвольте мне попробовать. – ihue
Независимо от фактической проблемы, * этот * очень хорошо структурированный вопрос (+1). – Jan