0

我正在尝试使用以下代码根据 Microsoft Dynamics CRM 2011 Online 的地址返回经度和纬度。地址正常,但下面的代码不起作用。谁能帮我找出原因。

try
{
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("GET", "http://maps.google.com/maps/api/geocode/xml?sensor=false&address=" + address, false);
    xHReq.Send(null);

    var resultXml =xHReq.responseXML;
alert(resultXml);
    var addressComponents=resultXml.selectNodes("//GeocodeResponse/result/geometry/location");
    if (addressComponents != null && addressComponents.length > 0) 
    {
        var long = parseFloat(resultXml.selectSingleNode("//GeocodeResponse/result/geometry/location/lng").nodeTypedValue);
        var lat = parseFloat(resultXml.selectSingleNode("//GeocodeResponse/result/geometry/location/lat").nodeTypedValue);

        crmForm.all.address1_latitude.DataValue = lat;
        crmForm.all.address1_longitude.DataValue = long;
        alert(lat);

crmForm.all.address1_latitude.ForceSubmit = true;
        crmForm.all.address1_longitude.ForceSubmit = true;
        }

}

我收到以下错误消息:权限被拒绝。

我开始怀疑我是否因为网站是 https:// 而遇到问题。

有没有其他人遇到同样的错误。

4

2 回答 2

2

如果您自己的代码尚未在该域中(跨域限制),则您不能使用 XMLHttp 访问域中的数据。由于您的代码不是从 google.com 提供的,因此您无法访问该域中的数据。

对于 Javascript,请使用 Mano 评论的 Javascript API 中的地理编码服务。本质上,它使用 JSON 并且不受这种方式的限制。

于 2012-06-14T13:24:07.587 回答
0

请转到网址,http://rubenb.home.xs4all.nl/latitudelongitude/latlon.html

只需输入地址即可将地址转换为经度和纬度。只要您使用以下格式,您就可以输入世界上的任何地址:街道、城市、国家或街道、城市、州。甚至您可以找到属于门牌号码的经度和纬度。您可以将经度或纬度复制并粘贴到 GPS 或任何使用经度/纬度的程序,如“poi 编辑器”或“IGo poi explorer”。如果您想为您的导航工具创建一个 Poi 文件,这个站点非常有用。

该站点使用来自 Google 的地理编码脚本。地理编码是估计给定位置的纬度和经度的过程。

于 2013-07-28T12:14:26.517 回答