http://nominatim.openstreetmap.org/search?format=json&q=%D0%9A%D1%80%D0%BE%D0%BD%D1%88%D1%82%D0%B0%D0%B4%D1%82%D1%81%D0%BA%D0%B8%D0%B9%20%D1%80%D0%B0%D0%B9%D0%BE%D0%BD,%20%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3&polygon_geojson=1
Всё Получаем в ответ geojson (массив с географическими координатами) и делаем с ним что хотим.
Например, я решил обработать его в несколько ином виде, чтобы скармливать Яндекс.Картам. Для этого я накидал простеньку функцию на PHP:
Источник - http://zabolotskikh.com/tips/kak-poluchit-koordinaty-rayonov/function
areaCoordsParser(
$search
)
{
$query
= http_build_query([
'format'
=>
'json'
,
'q'
=>
$search
,
'polygon_geojson'
=> 1,
]);
$url
=
"http://nominatim.openstreetmap.org/search?$query"
;
$response
= json_decode(
file_get_contents
(
$url
), true);
$result
= [];
if
(
$response
[0][
'geojson'
][
'type'
] ===
'MultiPolygon'
) {
$coords
=
$response
[0][
'geojson'
][
'coordinates'
];
foreach
(
$coords
as
$coord
) {
$temp
= [];
foreach
(
$coord
[0]
as
$item
) {
$temp
[] =
array_reverse
(
$item
);
}
$result
[] =
$temp
;
}
}
elseif
(
$response
[0][
'geojson'
][
'type'
] ===
'Polygon'
) {
$coords
=
$response
[0][
'geojson'
][
'coordinates'
][0];
foreach
(
$coords
as
$coord
) {
$result
[] =
array_reverse
(
$coord
);
}
}
return
$result
;
}
echo
json_encode(areaCoordsParser(
'Адмиралтейский район, Санкт-Петербург'
));
Комментариев нет:
Отправить комментарий