Как найти указанный адрес лежит в данном городе в Ларавелле? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть два поля в таблице: одно - город, а другое - адрес. Я должен найти, находится ли адрес в городе или нет. Как я могу найти это.

для получения лат и lng города

 $city_lat_lng =json_decode(file_get_contents("http://maps.google.com/maps/api/geocode/json?address={$ogl_city}&sensor=false"));
 $city_lat = $city_lat_lng->results[0]->geometry->location->lat;
 $city_long = $city_lat_lng->results[0]->geometry->location->lng;

для получения лат и lng адреса

$address_lat_lng = json_decode(file_get_contents("http://maps.google.com/maps/api/geocode/json?address={$ogl_address}&sensor=false"));
$address_lat = $address_lat_lng->results[0]->geometry->location->lat;
$address_long = $address_lat_lng->results[0]->geometry->location->lng;

В приведенном выше коде мыв состоянии найти длинный адрес и город. Но не поймите, как правильно определить, находится ли конкретный адрес в определенном городе. И город, и адрес динамичны здесь. Я новичок в Laravel. искал в Google тоже, но не нашел правильных решений.

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете использовать address_components из ответа API, чтобы получить город:

$response = json_decode(file_get_contents("http://maps.google.com/maps/api/geocode/json?address={$ogl_city}&sensor=false"));
$firstOption = $response[0];

for($i=0;$i<count($firstOption['address_components']);$i++)
{
    if (in_array ("administrative_area_level_1", $firstOption['address_components'][$i]['types']))
    {
        echo "city = ". $firstOption['address_components'][$i]['long_name'].PHP_EOL;
    }
}

administrative_area_level_1 - это тип административного района, проверьте, какие типы соответствуют вашему представлению о городе, здесь: https://developers.google.com/places/supported_types

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...