2012-02-28 2 views
0

Что я хочу сделать, так это создать широту & долготу с адресом, поэтому я подумал, что API геокодирования Google будет замечательным.Извлечение широты и долготы из Google GeoCoding API

Я пробовал все и все еще не хочу работать. Я не опытный веб-программист, поэтому любая помощь будет отличной.

Я пробовал с XML и с JSON, с JavaScript и ASP, и ничего. Я не могу увидеть XML/JSON объект :(

Это лучшее, что я мог бы сделать с ASP:.

<% 
address=Request.QueryString("address") 
url = "http://maps.googleapis.com/maps/api/geocode/json?address=" 
url = url + address + "&sensor=false" 
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "GET", url, false 
xmlhttp.send "" 

data = xmlhttp.responseText 
Response.write data 
' Creating the XML object (New code added) : 
set xml = xmlhttp.responseXML 
Response.write xml.documentElement.selectSingleNode("result").text 

set xmlhttp = nothing 
%> 

Здесь, по крайней мере, кажется, я могу получить данные с сервера, однако, я не может преобразовать данные в объект JSON (ни XML с просьбой сервера, чтобы обеспечить его в XML).

Если кто-нибудь знает, как это сделать, с ASP или JavaScript, JSON или XML, я буду очень благодарен.

ответ

0

Ok, после некоторого более Reasearch с другом, мы наконец сделали это:

В ASP, ключ играет с

selectSingleNode("name of your node") 

childNodes(integer pointing to the node) 

Таким образом, вы можете выбрать узлы внутри узлы внутри узлов и т.д.

Таким образом, после создания объекта, как сказал по этому вопросу, вам просто нужно сделать:

set xml = xmlhttp.responseXML 
Response.write xml.documentElement.selectSingleNode("result").selectSingleNode("geometry").selectSingleNode("location").text 

Например, если вы искали лат & долго.

+1

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

+1

Я буду завтра (похоже, что у вас есть ждать два дня, прежде чем принимать свой собственный ответ) – ArcDare

+1

Поскольку 'sele ctSingleNode' принимает в качестве аргумента выражение XPath, вы можете сократить выражение до 'xml.documentElement.selectSingleNode (« результат/геометрия/местоположение »). text' –

0

Вот как я сделал бы это на PHP, просто перевести на ASP, и вы далеко!

$XML = file_get_contents("http://maps.google.com/maps/geo?q=$address&output=xml&oe=utf8&sensor=false&key=$mapskey"); 

if (preg_match('/<coordinates>([\d.-]*),([\d.-]*),0<\/coordinates>/', $XML, $matches)) { 
    $longitude = $matches[1]; 
    $latitude = $matches[2]; 
} 
+1

Я собираюсь попробовать, но, поскольку я не знаком с PHP, потребуется некоторое время. Спасибо, – ArcDare