Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Работа с Google Maps из PHP


Автор: lesha_od 18.10.2007, 16:15
Задача.
Имеется адрес объекта, например "Anaheim, Orange County, California, United States, 36283" или "Kyiv, Ukraine".
Гугл maps его находит. Координаты через JS можно получить так:

Код

function showAddress(address) {
    initialize();
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (point) {
            
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              //marker.openInfoWindowHtml(address);
        document.getElementById("xaxe").value=point.x;
        document.getElementById("yaxe").value=point.y;
        }
          }
        );
      }
    }



где point.x и у - это широта/долгота искомой локации.

Вопрос в там, как в Php это получить, не создавая дополнительную страницу. Причем, объектов будет произвольное число, и потом их все нужно будет нанести на карту и дать каждому ссылку.
В идеале помогла бы функция типа find(String $place) {... return $POINT;}
Если кто-то сталкивался или имеет соображения по этому поводу, это будет очень полезно. Простое AJAX-решение тоже будет интересно.

Автор: lesha_od 19.10.2007, 11:52
Вопрос, кстати решил. Просто всё, что нужно было, сделал через JavaScript (массивы которого сгенерены на php). Кто столкнется - готов подробно объяснить, как делать.

Автор: daxa 30.11.2007, 13:50
В php4 координаты можно получить следующим образом:

Код

$address = "109-2 Atlantic Ave New York United States";
$map_url = "http://maps.google.com/maps/geo?output=csv&key="._MAP_KEY."&q=".urlencode($address);
$csv = file_get_contents($request_url);


Однако у меня выдается такя ошибка:

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: gethostbyname failed in ...

В одной из тем уже поднималась такая проблема, но если allow_url_fopen = on, и вместо file_get_contents пробовала file(), fopen() с таким же результатом, то как можно выйти   из этой ситуации (для php4)?

Автор: teroni 30.11.2007, 23:46
curl или сокетами получайте...
И определитесь, $map_url или $request_url вам нужны ;)

Автор: doroshenkoes 5.3.2008, 13:12
Добрый день. А, может быть, кто-нибудь сталкивался со следующей проблемой: В параметре "q" передаю "Россия, Москва, Улица Тверская,  дом 4". В ответ приходят координаты 1-ой Тверской-Ямской улицы, д.4. Как я понял, по запросу ул. Тверская он находит несколько улиц, и выдает мне первую (логично, ведь 1-я Тверская-Ямская при сортировке по алфавиту выйдет раньше, чем Тверская). Как сделать чтобы он присылал хотя бы все результаты? А в идеале было бы вообще поставить какой-нибудь флажок для более строгого поиска.
Заранее спасибо

Автор: solenko 5.3.2008, 18:57
Нужно использовать не getLatLng, а getLocations

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)