解决经度和纬度转换问题

时间:2012-06-12 14:25:36

标签: google-maps-api-3 dynamics-crm-2011 dynamics-crm-online

我正在尝试使用以下代码根据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://而遇到问题。

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

2 个答案:

答案 0 :(得分:2)

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

对于Javascript,请使用Javascript API中的地理编码服务,如Mano所评论的那样。从本质上讲,它使用JSON并且不受此限制。

答案 1 :(得分:0)

请访问网址http://rubenb.home.xs4all.nl/latitudelongitude/latlon.html

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

此网站正在使用Google的地理编码脚本。地理编码是估算给定位置的纬度和经度的过程。