Я новичок здесь. Это мой первый пост, но я читал его годами.
Я работал с HTML, CSS, JS и PHP уже много лет, но это достаточно озадачил меня, когда я прошу помощи онлайн. Моя проблема в том, что мне нужно получить координаты широты и долготы для адресов улиц, которые я передаю своему коду (например, 77 Massachusetts Ave, Cambridge, MA 02139).
Я искал несколько недель (или месяцев) и перепробовал предложения нескольких людей, которые часто пишутся в JS или PHP. У меня есть действующий API Google, который должен работать очень хорошо (другие в моей команде успешно использовали его в Android, и он помечен как работающий на нашем сайте). Я нашел много примеров на разных сайтах, но ни один не работает.
Все, что я пробовал, ничего не дает. Я понимаю, что требование Google использовать API является новым, и некоторые примеры не использовали его, но даже когда я применяю мой, ничего не работает. Я ищу чистый, современный пример того, как заставить эту функцию работать.
Вот несколько примеров, которые я пробовал. Они ничего не производят, и я не уверен, что смогу сделать сообщение об ошибке, чтобы выяснить, почему:
<?php
function getLatLong($address){
if (!is_string($address))die("All Addresses must be passed as a string");
$_url = sprintf('http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=true&key=[MY_API_KEY]',rawurlencode($address));
if($_result = file_get_contents($_url)) {
$_result = json_decode($_result);
if($_result !== false || !empty($_result->results)) {
return $_result->results[0]->geometry->location;
}
}
return false;
}
$address = "77 Massachusetts Ave, Cambridge, MA 02139";
print_r(getLatLong($address));
$coordinates = getLatLong($address);
$lat = $coordinates['lat'];
$long = $coordinates['long'];
echo $lat.", ".$long;
echo "--";
?>
<?php
$address = '77 Massachusetts Ave, Cambridge, MA 02139'; // Address
$apiKey = '[MY_API_KEY]'; // Google maps now requires an API key.
// Get JSON results from this request
$geo = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($address).'&sensor=false&key='.$apiKey);
$geo = json_decode($geo, true); // Convert the JSON to an array
if (isset($geo['status']) && ($geo['status'] == 'OK')) {
$latitude = $geo['results'][0]['geometry']['location']['lat']; // Latitude
$longitude = $geo['results'][0]['geometry']['location']['lng']; // Longitude
}
?>
<?php
$dlocation = "77 Massachusetts Ave, Cambridge, MA 02139";
// Get lat and long by address
$address = $dlocation; // Google HQ
$prepAddr = str_replace(' ','+',$address);
$geocode=file_get_contents('https://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false&key=[MY_API_KEY]');
$output= json_decode($geocode);
$latitude = $output->results[0]->geometry->location->lat;
$longitude = $output->results[0]->geometry->location->lng;
echo $latitude;
?>
Любая помощь будет принята с благодарностью! Если у вас есть пример кода, который может это сделать, я, конечно, хотел бы увидеть его.
Большое спасибо, BDP