Определение координат расположения объекта, с помощью 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
Заказать работу
предложить оффер

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

Archive

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