Определение координат расположения объекта, с помощью PHP (gMaps, Я.Карты)

Author Автор: Роман Чернышов    Опубликовано: 19 апреля 2012

Яндекс и Google карты, дают нам(веб-разработчикам) замечательную возможность, использовать их встроенный API для пометки объектов на карте с последующим прикреплением карты к новости или статье. Что уж говорить о динамических картах, неоспоримое удобство для навигации пользователей с просмотров всех расставленных нами объектов на них. Для всего этого существует JavaScript API, а как быть если информацию об объекте нужно получить средствами PHP?

Далее речь пойдет о получении координат объекта на карте по его адресу. Это может быть очень удобно, например такой подход можно использовать в объявлениях где пользователь указывает адрес, затем скрипт на PHP автоматически определяет координаты и ставит балун на карте с соотв. комментарием. Так же эту возможность можно использовать для определения координат большого числа разных объектов по им адресам, достаточно лишь поместить адреса в массив, а затем в цикле запросить координаты каждого объекта.

Приведу промеры кода для работы с API Яндекс карт:

$adress = "Москва, пр. Ленина, д. 100"; //адрес примера произвольный
	$key = "API_Ya_KEY"; //API ключ для работы с Яндекс картами
	$adress1=urlencode($adress);
	$url="http://geocode-maps.yandex.ru/1.x/?geocode=".$adress1."&key=".$key; 
	$content=file_get_contents($url); // получаем страницу с координатами
	preg_match('/<pos>(.*?)<\/pos>/',$content,$point); // вырезаем нужные нам координаты
	$coordinaty=explode(' ',trim(strip_tags($point[1]))); 
 
	//координаты объекта
	echo $coordinaty[0]; 
	echo $coordinaty[1];

Стоит отметить, что запрос на Я.API вернет не просто координаты объекта, а целое множество полей в формате XML, содержащих информацию о всех найденных объектах со схожим адресом. Первым будет идти наиболее вероятное расположение, затем остальные.

Пример с использование Google Maps:

	$adress = "Москва, пр. Ленина, д. 100"; //адрес примера произвольный
	$adress1=urlencode($adress);
	$url="http://maps.google.com/maps/geo?q=$adress1&sensor=false&output=csv&oe=utf8"; 
	$content=file_get_contents($url); // получаем страницу с координатами
	$coordinaty=explode(',',trim(strip_tags($content))); 
 
	//координаты объекта
	echo $coordinaty[2]; 
	echo $coordinaty[3];

Где применить эту возможность думаю вы и сами уже решили, вариантов множество, осталось только оценить полезность данный возможности, предоставляемой нам API Яндекс и Google карт на практике.

2 комментария to “Определение координат расположения объекта, с помощью PHP (gMaps, Я.Карты)”

  • Александр 30.04.2012 в 2:13 пп

    все понятно и просто, отличная тсатья спасибо))

  • имя 08.08.2012 в 7:37 пп

    В итог привидет к ошибки, поясню. данный скрипт без проблем определит координаты «омск, улицакоторойнету» поэтому надо проверять соответствие названий, проще всего делать это через simplexml

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Оформить предзаказ
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка