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

也许你可以添加一些什么不工作的细节?错误信息?意外的结果..? –

+3

除非出现明显的错误,否则很难调试代码片段。如果你可以发布一个更好的实况样本。另外,不要使用http web服务,而应考虑使用JavaScript API的地理编码服务,它更容易并且与JS Maps API更加集成。 –

回答

2

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

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

0

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

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

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