php Пример скрипта запроса для получения координат условных "центров" регионов РФ (код для API Яндекс геокодирование)
Primary tabs
Как-то так:
(в примере ниже для "Ханты-Мансийский АО — Югра" пришлось использовать псевдоним -- яндекс показывал что-то невнятное)
<?php
$regions =
[
['name' => "Удмуртская республика"],
['name' => "Чувашская республика"],
['name' => "Алтайский край"],
['name' => "Амурская область"],
['name' => "Архангельская область"],
['name' => "Астраханская область"],
['name' => "Белгородская область"],
['name' => "Брянская область"],
['name' => "Владимирская область"],
['name' => "Волгоградская область"],
['name' => "Вологодская область"],
['name' => "Воронежская область"],
['name' => "Город Санкт-Петербург"],
['name' => "Город Севастополь"],
['name' => "Еврейская автономная область"],
['name' => "Забайкальский край"],
['name' => "Ивановская область"],
['name' => "Иркутская область"],
['name' => "Кабардино-Балкарская Республика"],
['name' => "Калининградская область"],
['name' => "Калужская область"],
['name' => "Камчатский край"],
['name' => "Карачаево-Черкесская Республика"],
['name' => "Кемеровская область"],
['name' => "Кировская область"],
['name' => "Костромская область"],
['name' => "Краснодарский край"],
['name' => "Красноярский край"],
['name' => "Курганская область"],
['name' => "Курская область"],
['name' => "Ленинградская область"],
['name' => "Липецкая область"],
['name' => "Магаданская область"],
['name' => "Москва"],
['name' => "Московская область"],
['name' => "Мурманская область"],
['name' => "Ненецкий автономный округ"],
['name' => "Нижегородская область"],
['name' => "Новгородская область"],
['name' => "Новосибирская область"],
['name' => "Омская область"],
['name' => "Оренбургская область"],
['name' => "Орловская область"],
['name' => "Пензенская область"],
['name' => "Пермский край"],
['name' => "Приморский край"],
['name' => "Псковская область"],
['name' => "Республика Адыгея"],
['name' => "Республика Алтай"],
['name' => "Республика Башкортостан"],
['name' => "Республика Бурятия"],
['name' => "Республика Дагестан"],
['name' => "Республика Ингушетия"],
['name' => "Республика Калмыкия"],
['name' => "Республика Карелия"],
['name' => "Республика Коми"],
['name' => "Республика Крым"],
['name' => "Республика Марий Эл"],
['name' => "Республика Мордовия"],
['name' => "Республика Саха(Якутия)"],
['name' => "Республика Северная Осетия-Алания"],
['name' => "Республика Татарстан"],
['name' => "Республика Тыва"],
['name' => "Республика Хакасия"],
['name' => "Ростовская область"],
['name' => "Рязанская область"],
['name' => "Самарская область"],
['name' => "Саратовская область"],
['name' => "Сахалинская область"],
['name' => "Свердловская область"],
['name' => "Смоленская область"],
['name' => "Ставропольский край"],
['name' => "Тамбовская область"],
['name' => "Тверская область"],
['name' => "Томская область"],
['name' => "Тульская область"],
['name' => "Тюменская область"],
['name' => "Ульяновская область"],
['name' => "Хабаровский край"],
['name' => "Ханты-Мансийский АО — Югра", 'ya-name' => "Ханты-Мансийский АО"],
['name' => "Челябинская область"],
['name' => "Чеченская Республика"],
['name' => "Чукотский АО"],
['name' => "Ямало-Ненецкий АО"],
['name' => "Ярославская область"],
];
$placesWithCoords = [];
$i = 0;
foreach ($regions as $region) {
$placesWithCoords[$i]['name'] = $region['name'];
$searchName = $region['name'];
if (!empty($region['ya-name'])) { // всё-таки некоторые имена пришлось задать руками
$searchName = $region['ya-name'];
}
$placesWithCoords[$i]['coords'] = getCoords($searchName);
$i++;
msleep(0.2);
}
echo '<br> Резулmтат:<br>';
foreach ($placesWithCoords as $place) {
echo $place['coords']['la'] . ' '
. $place['coords']['lo'] . ' '
. $place['name']
. '<br>';
}
/**
* Получит координаты места (точки) с помощью
* сервиса геокодирования Яндекса
*
* @param string $placeName Имя места
* @return array массив вида:
* ['la' => , 'lo' => ] -- широта и долгода
*/
function getCoords($placeName)
{
$response = json_decode(file_get_contents('https://geocode-maps.yandex.ru/1.x/?format=json&geocode='
. $placeName));
$coordsStr = $response->response->
GeoObjectCollection
->featureMember[0]
->GeoObject
->Point
->pos;
//echo $coordsStr;
$coords = explode(' ', $coordsStr);
return [
'la' => $coords[1],
'lo' => $coords[0],
];
}
function msleep($time)
{
usleep($time * 1000000);
}
Результат работы скрипта см. ниже в комментариях.
- Log in to post comments
- 6072 reads
vedro-compota
Mon, 02/05/2018 - 14:46
Permalink
координаты центоров областей регионов России по версии Яндекса
После запуска скрипта выше получили следующее:
Или в виде php-массива:
_____________
матфак вгу и остальная классика =)