从Google GeoCoding API检索纬度和经度

时间:2012-02-28 11:38:18

标签: javascript xml json asp-classic google-geocoding-api

我想要做的是生成纬度&经度给出一个地址,所以我认为Google地理编码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,我会非常感激。

3 个答案:

答案 0 :(得分: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 :(得分:0)

好的,经过与朋友的更多研究,我们终于完成了它:

在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

例如,如果您正在寻找lat&amp;长。

答案 2 :(得分:0)

您的代码存在的问题是您要求json正确的网址应为url =“http://maps.googleapis.com/maps/api/geocode/xml?address=

而不是

url =“http://maps.googleapis.com/maps/api/geocode/json?address=