谷歌地理编码通过HTTP回调功能?

6 javascript ajax geocoding callback

我想通过HTTP功能使用谷歌地理编码将城市名称转换为我的AJAX Web应用程序的经度和纬度.

但是,似乎HTTP地理编码器功能不存在回调函数

http://code.google.com/apis/maps/documentation/geocoding/index.html

是真的,没有回调函数吗?

因为如果这是真的,它实质上意味着当与AJAX一起使用时,通过HTTP api的Google地理编码是无用的,因为JavaScript会引发跨域异常错误.

关于如何在JavaScript中的AJAX Web应用程序中通过HTTP api使用地理编码的任何想法?

:我希望使用完全成熟的谷歌地图API,它是大约200KB的下载(即的GClientGeocoder).我想使用它的超快速响应的HTTP api b/c,并且不需要我的网络用户必须下载巨大的全面交互式谷歌地图api.

例如 http://maps.google.com/maps/geo?output=json&sensor=false&key= {API_KEY}&q = {CITY,STATE}&CALLBACK = ????

谢谢

and*_*ndy 3

嗯....我认为你必须将 AJAX 回调回你自己的服务器,然后从你的服务器调用 Google 的地理编码。

这就是我进行 AJAX 地理编码的方式,这一切都通过我的 ASP.NET 代码进行。

编辑:

在 ASP.NET Webforms 环境中,我可能会将其实现为轻量级 ASHX 文件,但为了简单起见,这里有一个 ASPX 示例:

public partial class GoogleHandler : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e) {
        Response.Write(GetGoogleXML("http://pseudo_googlegeocode?parameter=" + parametersFromQuerystring);
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,.NET 页面仅传递请求。

但在真实环境中,我宁愿我的 .NET 代码做的不仅仅是传递数据。这样,我可以在将数据发送到客户端之前在服务器上进行错误处理、过滤、验证、业务逻辑。

此外,这还允许更大的抽象。即,我可能会从谷歌地理编码更改为雅虎地理编码。通过这种方式,我只需要更改我的服务逻辑,并让客户端只接收一组通用的坐标/位置数据。

此外,使用该抽象,我实际上可以聚合来自各种地理编码数据源的多个数据。同样,服务器负责聚合,客户端仅接收并显示过滤后的数据。