Невозможно получить долготу, широту и т. Д. Через геокодирование с помощью mapmyindia - PullRequest
0 голосов
/ 30 октября 2018

Попытка геокодирования адресов mapsmyindia api. Вот URL для справки: https://www.mapmyindia.com/api/advanced-maps/doc/geocoding-api.

Код указан ниже

    $json_str = file_get_contents("http://apis.mapmyindia.com/advancedmaps/v1/<?=$key ?>/geo_code?addr=Singanallur Railway Station, Tamil Nadu&pin=");

$obj  = json_decode($json_str);
$data = $obj->lng;
echo $data;

Вот результат, который мы получили в лучшем случае.

{"responseCode":"200","version":"181.2731","results":[{"houseNumber":"","houseName":"","poi":"Rajalakshmi Mills","street":"Kalimadai Road","subSubLocality":"TVH Vista Heights","subLocality":"Nanjappa Nagar","locality":"Singanallur","village":"","subDistrict":"Coimbatore South","district":"Coimbatore District","city":"Coimbatore;Kovai","state":"Tamil Nadu;TN","pincode":"641005","lat":"10.995464999999999","lng":"77.015103000000096","formatted_address":"Rajalakshmi Mills, Kalimadai Road, TVH Vista Heights, Nanjappa Nagar, Singanallur, Coimbatore South, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"FC84F7","type":"POI"},{"formatted_address":"Rajalakshmi Mills, Ramanathapuram, Coimbatore South, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"OLIC1G","type":"HOUSE_NAME"},{"formatted_address":"Rajalakshmi Mills High School, Anugraha Gardens, Singanallur, Coimbatore South, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"8PXAIC","type":"HOUSE_NAME"},{"formatted_address":"Pankaja Mills, Coimbatore South, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"V83JL9","type":"LOCALITY"},{"formatted_address":"Junction Mills, Coimbatore North, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"IPCDQT","type":"LOCALITY"},{"formatted_address":"Lakshmi Mills, Coimbatore South, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"7X8ZFU","type":"LOCALITY"},{"formatted_address":"GN Mills, Coimbatore North, Coimbatore District, Coimbatore, Tamil Nadu","place_id":"KACYTZ","type":"LOCALITY"},{"formatted_address":"Rajalakshmi Nagar, Dindigul, Dindigul District, Dindigul, Tamil Nadu","place_id":"T7Y5DF","type":"LOCALITY"}]}

Работает, но выдает данные в блок. Это не желаемый результат. Требуются значения отдельно. Например, долгота, широта должна быть выведена в виде отдельных значений.

Ищите выход.

1 Ответ

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

В соответствии с руководством, которое вы ссылаетесь на API, возвращается строка JSON. Поэтому для доступа к этим данным с помощью PHP вам необходимо преобразовать эту строку в собственный тип данных PHP с помощью json_decode()

Так например

$json_str = file_get_contents("http://apis.mapmyindia.com/advancedmaps/v1/<?=$key ?>/geo_code?addr=Singanallur Railway Station, Tamil Nadu&pin=");

$obj  = json_decode($json_str);
$data = $obj->lng;
echo $data;
...