解决经度和纬度转换问题



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

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

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

对于 Javascript,请使用 Javascript API 中的地理编码服务,正如 Mano 所评论的那样。从本质上讲,它使用 JSON,并且不受这种方式的约束。

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

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

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

最新更新