Giter VIP home page Giter VIP logo

yandexgeocoder's Introduction

Сервис Яндекс.Геокодирование

Яндекс.Карты предоставляют сервис геокодирования. Он позволяет определять координаты и получать сведения о географическом объекте по его названию или адресу и наоборот, определять адрес объекта на карте по его координатам (обратное геокодирование).

Например, по запросу «Санкт-Петербург, Невский проспект, 35» геокодер возвратит географические координаты этого дома: «30.332631, 59.934172» (долгота, широта).

Если в запросе указать географические координаты дома «30.332631, 50.4452705», то геокодер вернет адрес: «Украина, Киев, Шевченковский район, улица Богдана Хмельницкого, 11»

https://yandex.ru/dev/maps/geocoder/

API для работы с сервисом Яндекс.Геокодирование

Этот пакет реализует простой интерфейс для доступа к геокодеру.

Для работы с геокодером нужен токен. Получить его можно в кабинете разработчика: https://developer.tech.yandex.ru/services/

Пакет ajur-media/yandex-geo-coder

Так как «официальный» пакет yandex/geo (https://packagist.org/packages/yandex/geo) не обновлялся с июля 2019 года (несмотря на наличие pull-request'ов), а разработчики не отвечают на письма, я выпустил эту версию (с небольшими исправлениями и дополнениями) для нужд разработки «АЖУР Медиа».

Этот пакет доступен в репозитории:

composer require ajur-media/yandex-geo-coder

Пример использования

<?php

use AJUR\Toolkit\YandexGeoCoder\Api;

require_once 'vendor/autoload.php';

// инициализируем API
// возвращает mutable object 
$api = new Api();

// Можно искать по точке (обратное геокодирование)
// $api->setPoint(30.5166187, 50.4452705);

// Или можно искать по адресу (прямое геокодирование)
$api->setQuery('Санкт-Петербург, Невский проспект, 35');

// Настройка фильтров (можно использовать fluent-интерфейс)
$api
    ->setLimit(1) // кол-во результатов
    ->setLang( Api::LANG_RU) // используемый язык для ответа 
    ->setToken('<token>') // api ключ
    ->load();

$response = $api->getResponse();

echo "Found: ", $response->getFoundCount(), PHP_EOL;
echo "Query: ", $response->getQuery(), PHP_EOL;

$object = $response->getFirst(); // получаем первый (самый релевантный) объект в ответе геокодера 

echo "Lat: ", $object->getLatitude(), PHP_EOL;
echo "Lon: ", $object->getLongitude(), PHP_EOL;

// Список найденных объектов
$collection = $response->getList();

foreach ($collection as $n => $item) {
    echo "[{$n}] Address: ", $item->getAddress(), PHP_EOL;
    echo "Lat: ", $item->getLatitude(), PHP_EOL;
    echo "Lon: ", $item->getLongitude(), PHP_EOL;
}

Лицензия

MIT

TODO

  • add \Psr\Logger as second argument to API constructor

yandexgeocoder's People

Contributors

karelwintersky avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.