Javascript Google Geolocation JS API提供无意义的Lat/Long
我使用以下代码和有效的API密钥从Google Geocoder JS API获取纬度和经度:Javascript Google Geolocation JS API提供无意义的Lat/Long,javascript,google-maps,google-geocoding-api,Javascript,Google Maps,Google Geocoding Api,我使用以下代码和有效的API密钥从Google Geocoder JS API获取纬度和经度: <script async defer type="text/javascript" src="http://maps.google.com/maps/api/js?key=[key]"> </script> <script> var geocoder = new google.maps.Geocoder(); var address = "
<script async defer type="text/javascript"
src="http://maps.google.com/maps/api/js?key=[key]">
</script>
<script>
var geocoder = new google.maps.Geocoder();
var address = "1600 Amphitheatre Parkway, Mountain View, CA";
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK)
{
console.log (results[0]);
// results[0].geometry.location.lat
// results[0].geometry.location.lng
}
else console.log(status, results);
});
</script>
var geocoder=new google.maps.geocoder();
var address=“加利福尼亚州山景城圆形剧场公园路1600号”;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK)
{
console.log(结果[0]);
//结果[0]。geometry.location.lat
//结果[0]。geometry.location.lng
}
else console.log(状态、结果);
});
对Google服务器的查询工作正常,并返回结果。问题是,无论我输入什么地址,location.lat
返回为.E/this.lat()
,而location.lng
返回为.E/this.lng()
。视口坐标很好,但实际的纬度和经度结果对我来说毫无意义。如果我将代码放入函数并将其作为回调传递,也会发生同样的情况
以前有人遇到过这种情况吗?有什么我遗漏的吗?搜索时,我在任何地方都找不到有关此问题的任何信息,这是我第一次使用API。
结果[0]。geometry.location
是一个。它没有.lat
/.lng
属性,它们是函数,您需要调用它们:
var geocoder = new google.maps.Geocoder();
var address = "1600 Amphitheatre Parkway, Mountain View, CA";
geocoder.geocode({
'address': address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results[0]);
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
map.setCenter(results[0].geometry.location);
} else console.log(status, results);
});
代码片段:
var地理编码器;
var映射;
函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var geocoder=new google.maps.geocoder();
var address=“加利福尼亚州山景城圆形剧场公园路1600号”;
地理编码({
“地址”:地址
},功能(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
console.log(结果[0]);
var lat=results[0]。geometry.location.lat();
var lng=results[0]。geometry.location.lng();
var iw=new google.maps.InfoWindow();
iw.设置内容(“lat:+lat+”
lng:+lng);
iw.setPosition(结果[0].geometry.location);
开放(地图);
map.setCenter(结果[0].geometry.location);
}else console.log(状态、结果);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化)代码>
html,
身体
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
我可以发誓,我曾尝试提醒这些人,但它抱怨这不是真的,但我只是再试了一次,结果成功了。奇怪的谢谢