Google Map API
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2435
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2451
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2456
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2461
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2467
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2479
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2496
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2497
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2498
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2499
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2517
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2518
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2519
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2520
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2550
Материал из Newman's WiKi.
Версия 09:18, 10 декабря 2008 WikiSysop (Обсуждение | вклад) («Google mapapi» переименована в «Google Map API») ← К предыдущему изменению |
Текущая версия WikiSysop (Обсуждение | вклад) (→Ссылки) |
||
Строка 1: | Строка 1: | ||
- | Google MapAPI сервис предоставляемый [http://google.com Google] для работы с картами. Позволяет отмечать точки на карте, а так же производить поиск и просмотр карты непосредственно на сайте. | + | Google Map API сервис предоставляемый [http://google.com Google] для работы с картами. Позволяет отмечать точки на карте, а так же производить поиск и просмотр карты непосредственно на сайте. |
==Начало работы== | ==Начало работы== | ||
+ | Для того что бы работать с картами Google на своем сайте нужно получить ключ API. Для этого сначала нужно завести аккаунт на [http://google.com Google] (если его еще нет), а затем перейти на страницу [http://code.google.com/intl/ru_ALL/apis/maps/signup.html http://code.google.com/intl/ru_ALL/apis/maps/signup.html]. На этой странице нужно согласиться с условями использования (поставить галочку) и указать адрес сайта, на котором планируется использовать Map API. В результате будет выведен клю и показан пример использования Google Map API. | ||
+ | |||
+ | Ниже приведен пример ключа: | ||
+ | <pre> | ||
+ | ABQIAAAA4WH5PIrQfCRa762-p1YVXxSUgxVXCnZeaclVeWKDOWdbdybHqhSH5l_c0C-Ts0Vbu71rPc-0dgtnoA | ||
+ | </pre> | ||
+ | |||
+ | Пример полученный при регистрации ключа можно использовать на сайте для проверки что все работает правильно. Нужно создать файл на сервере и вставить в него исходный текст примера. | ||
+ | |||
+ | ==Получить координаты места по адресу== | ||
+ | Одной из удобных функций Google Map API является возможность поиска по адресу и получение георграфических координат (geocode). | ||
+ | ===Запрос из server side скрипта=== | ||
+ | Несмотря на то что основной функционал API работает на клиентской стороне есть возможность делать некоторые запросы из серверных скриптов. Запрос на получение географических координа по адресу как раз относится к подобным случаям. | ||
+ | |||
+ | Для того что бы выполнить поиск нужно сделать запрос методом GET по следующему адресу: | ||
+ | <pre> | ||
+ | http://maps.google.com/maps/geo | ||
+ | </pre> | ||
+ | При этом нужно передать обязательные параметры: | ||
+ | * '''key''' - ключ API. Как его получить указано выше. По идее может подойти любой валидный ключ. Не обязательно делать его привязка к какому-то домену | ||
+ | * '''q''' - строка запроса. В этой строке указывается адрес для поиска. | ||
+ | |||
+ | Есть еще необязательные параметры, которые в сущности не важны. Следует только упомянуть параметр '''output''' который задает формат возвращаемого результата. По умолчанию данные возвращаются в формате ''json'', но можно указать ''xml'', ''csv'' или ''kml''. | ||
+ | |||
+ | В зависимости от формата результата могут возвращаться различные данные. Но обязательно присутствуют координаты (то что собственно и нужно), код операции (аналогично кодам ответа протокола HTTP) и точность (Accuracy). | ||
+ | |||
+ | Значение точности это целое число от 0 - ничего не найдено, до 9 - название здания или торгового центра. Подробнее [http://code.google.com/intl/ru/apis/maps/documentation/reference.html#GGeoAddressAccuracy здесь] | ||
+ | |||
+ | Пример запроса | ||
+ | <pre> | ||
+ | http://maps.google.com/maps/geo?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA&output=csv&key=A...A | ||
+ | </pre> | ||
+ | и ответа | ||
+ | <pre> | ||
+ | 200,8,37.4219720,-122.0841430 | ||
+ | </pre> | ||
+ | ===Запрос из клиентского JavaScript=== | ||
+ | Используется стандартный класс | ||
+ | <pre> | ||
+ | var geocoder = new GClientGeocoder(); | ||
+ | </pre> | ||
+ | Запрос делается следующим образом | ||
+ | <pre> | ||
+ | geocoder.getLatLng(query, showAddress); | ||
+ | </pre> | ||
+ | где '''query''' строка с адресом для определения, а '''showAddress''' имя функции для callback. Функция получает в качестве аргумента переменную с объектом класса GLatLng. Например эта функция может выглядеть следующим образом | ||
+ | <pre> | ||
+ | function showAddress(point) | ||
+ | { | ||
+ | if(point) | ||
+ | { | ||
+ | alert("lat:"+point.lat()+" lng "+point.lng()); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==Добавление контролов на карту== | ||
+ | ===Панель увеличения и перемещения=== | ||
+ | <pre> | ||
+ | map.addControl(new GLargeMapControl()); | ||
+ | </pre> | ||
+ | ===Перемещаемый маркер с отслеживанием координат=== | ||
+ | <pre> | ||
+ | marker = new GMarker(new GLatLng(<?php echo($lat); ?>, <?php echo($lng)?>), {draggable: true}); | ||
+ | GEvent.addListener(marker, "dragend", function() { | ||
+ | var dpoint=marker.getLatLng(); | ||
+ | var inp=document.getElementById("lng"); | ||
+ | inp.value=dpoint.lng(); | ||
+ | inp=document.getElementById("lat"); | ||
+ | inp.value=dpoint.lat(); | ||
+ | }); | ||
+ | map.addOverlay(marker); | ||
+ | </pre> | ||
+ | ==Ссылки== | ||
+ | * [http://maps.google.com Карты Google] | ||
+ | * [http://code.google.com/intl/ru/apis/maps/index.html Знакомство с API] | ||
+ | |||
+ | [[Категория:Опыт]] | ||
+ | [[Категория:JavaScript]] | ||
+ | [[Категория:Google]] |
Текущая версия
Google Map API сервис предоставляемый Google для работы с картами. Позволяет отмечать точки на карте, а так же производить поиск и просмотр карты непосредственно на сайте.
Содержание |
Начало работы
Для того что бы работать с картами Google на своем сайте нужно получить ключ API. Для этого сначала нужно завести аккаунт на Google (если его еще нет), а затем перейти на страницу http://code.google.com/intl/ru_ALL/apis/maps/signup.html. На этой странице нужно согласиться с условями использования (поставить галочку) и указать адрес сайта, на котором планируется использовать Map API. В результате будет выведен клю и показан пример использования Google Map API.
Ниже приведен пример ключа:
ABQIAAAA4WH5PIrQfCRa762-p1YVXxSUgxVXCnZeaclVeWKDOWdbdybHqhSH5l_c0C-Ts0Vbu71rPc-0dgtnoA
Пример полученный при регистрации ключа можно использовать на сайте для проверки что все работает правильно. Нужно создать файл на сервере и вставить в него исходный текст примера.
Получить координаты места по адресу
Одной из удобных функций Google Map API является возможность поиска по адресу и получение георграфических координат (geocode).
Запрос из server side скрипта
Несмотря на то что основной функционал API работает на клиентской стороне есть возможность делать некоторые запросы из серверных скриптов. Запрос на получение географических координа по адресу как раз относится к подобным случаям.
Для того что бы выполнить поиск нужно сделать запрос методом GET по следующему адресу:
http://maps.google.com/maps/geo
При этом нужно передать обязательные параметры:
- key - ключ API. Как его получить указано выше. По идее может подойти любой валидный ключ. Не обязательно делать его привязка к какому-то домену
- q - строка запроса. В этой строке указывается адрес для поиска.
Есть еще необязательные параметры, которые в сущности не важны. Следует только упомянуть параметр output который задает формат возвращаемого результата. По умолчанию данные возвращаются в формате json, но можно указать xml, csv или kml.
В зависимости от формата результата могут возвращаться различные данные. Но обязательно присутствуют координаты (то что собственно и нужно), код операции (аналогично кодам ответа протокола HTTP) и точность (Accuracy).
Значение точности это целое число от 0 - ничего не найдено, до 9 - название здания или торгового центра. Подробнее здесь
Пример запроса
http://maps.google.com/maps/geo?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA&output=csv&key=A...A
и ответа
200,8,37.4219720,-122.0841430
Запрос из клиентского JavaScript
Используется стандартный класс
var geocoder = new GClientGeocoder();
Запрос делается следующим образом
geocoder.getLatLng(query, showAddress);
где query строка с адресом для определения, а showAddress имя функции для callback. Функция получает в качестве аргумента переменную с объектом класса GLatLng. Например эта функция может выглядеть следующим образом
function showAddress(point) { if(point) { alert("lat:"+point.lat()+" lng "+point.lng()); } }
Добавление контролов на карту
Панель увеличения и перемещения
map.addControl(new GLargeMapControl());
Перемещаемый маркер с отслеживанием координат
marker = new GMarker(new GLatLng(<?php echo($lat); ?>, <?php echo($lng)?>), {draggable: true}); GEvent.addListener(marker, "dragend", function() { var dpoint=marker.getLatLng(); var inp=document.getElementById("lng"); inp.value=dpoint.lng(); inp=document.getElementById("lat"); inp.value=dpoint.lat(); }); map.addOverlay(marker);
Ссылки
Категории: Опыт | JavaScript | Google