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/?form...' . $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
- 5202 reads
vedro-compota
Mon, 02/05/2018 - 14:46
Permalink
координаты центоров областей регионов России по версии Яндекса
После запуска скрипта выше получили следующее:
Или в виде php-массива:
_____________
матфак вгу и остальная классика =)