2010-11-21 6 views
0

Я читаю API Google, но не вижу примеров там, и все другие примеры Googled-by-me немного стары (около 1-2 лет, большинство из них основаны на API-ключах: S).Отображение результатов API Google Geocode на карте?

Я хочу ввести текст. Отправить. И Iframe ниже.

Как отобразить местоположение на карте, используя мой собственный вход?

В этот момент мой IFrame выглядит следующим образом:

<iframe width="230" height="180" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="<?php echo $src ?>"> 

Вход: (?, Но JSON рекомендуется, насколько я знаю)

<input id="googleMaps" name="googleMaps" type="text" /> 

В этот момент я "пытаюсь с XML , но я получаю XML только текст в моем IFRAME, как:

This document had no style information. 
<GeocodeResponse> 
<status> 
OK 
</status> 
<result> 
<type> 
locality 
</type> 
<type> 
political 
</type> 
<formatted_address> 
(...) 

Как передать эти данные в Google и получить карту обратно :)?

Большое спасибо.

+0

Предлагаю вам ознакомиться с API JavaScript, так как вы хотите отображать результаты на карте. http://code.google.com/apis/maps/documentation/javascript/basics.html Есть примеры для геокодирования. – igorw

+0

Вы не указали, какую карту вам нужно, но вы можете найти, что статические карты легче работать: http://code.google.com/apis/maps/documentation/staticmaps/. Вам понадобятся лишь несколько основных инструментов: cURL и SimpleXML. – stillstanding

+0

К сожалению, я собираюсь отобразить динамическую карту (такие типы пользователей, как «blabla, New York, NY», и отображает карту с возможностями масштабирования и т. Д. Нужно ли мне использовать внешние скрипты для этого?; S – fomicz

ответ

1

Для того чтобы получить координату, которую можно использовать для отображения результатов на карте, вам необходимо использовать Google Geocode API для обратного геокодирования вашего адреса. Например, для моего адреса я отправляю к параметрам адреса, как указано в URL ниже

http://maps.googleapis.com/maps/api/geocode/json?address=154+Metro+Central+Heights+London+UK&sensor=true 

координат могут быть получены из полученного JSON, как показано ниже

"geometry": { 
     "location": { 
     "lat": 51.5001524, 
     "lng": -0.1262362 
     } 

PHP код, чтобы получить JSON

<?php 

$address = $_GET['address']; 
$address=str_replace(" ","+",$address); 
if ($address) { 
    $json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address. 
    '&sensor=true'); 
    echo $json; 
} 

?> 

The Javascript можно найти here. Критический код, который разбирает JSON приведен ниже

$.getJSON("getjson.php?address="+address, 
     function(data){ 
      lat=data.results[0].geometry.location.lat; 
      lng=data.results[0].geometry.location.lng; 
         //.... more map initialization code 
       } 
); 

я уже настроил рабочий пример для предыдущего вопроса here, который поможет вам понять, как создавать маркеры на карте. Дайте мне знать, если вам потребуются дополнительные разъяснения.

+0

Хорошо, но что, если мне нужно использовать XML вместо JSON? В этот момент, когда я помещал «http://maps.googleapis.com/maps/api/geocode/json?» в любом месте окна загрузки Popups Opera и спрашивает, где скачать этот файл «json» ... – fomicz

+0

Каждый браузер имеет другой способ обработки разных форматов файлов. Если вы собираетесь увидеть формат JSON, попробуйте открыть его в firefox или chrome. Если вам нужен XML, вам нужно заменить json с xml, как этот 'http: //maps.googleapis.com/maps/api/geocode/xml? address = ваш + адрес & sensor = true'. Я показал вам формат json, потому что проще разобрать это либо с помощью простого javascript или jQuery. – Philar

+0

Снова обратите внимание, что в Safari XML отображается по-разному, а не IE. Если вам нужно увидеть исходный XML-документ в Safari, вам нужно просмотреть источник. Не так, как с Opera. – Philar

Смежные вопросы