Javascript 如何修复非LatLng或LatLngLiteral:非对象问题-谷歌地图
该功能的思想是,当用户输入一个位置时,我们在该位置添加一个标记,并平移所述标记并放大标记的位置。然而,所有这些都相对良好。它给了我一个未捕获的错误Kc{消息:不是LatLng或LatLngLiteral:不是对象,名称:InvalidValueErrorJavascript 如何修复非LatLng或LatLngLiteral:非对象问题-谷歌地图,javascript,google-maps,google-maps-api-3,maps,Javascript,Google Maps,Google Maps Api 3,Maps,该功能的思想是,当用户输入一个位置时,我们在该位置添加一个标记,并平移所述标记并放大标记的位置。然而,所有这些都相对良好。它给了我一个未捕获的错误Kc{消息:不是LatLng或LatLngLiteral:不是对象,名称:InvalidValueError if(map.getZoom() == 2) { map.setCenter({lat:data.address_lat2, lng:data.address_lng2}); map.panTo(marker.position
if(map.getZoom() == 2) {
map.setCenter({lat:data.address_lat2, lng:data.address_lng2});
map.panTo(marker.position);
smoothZoom(map, 11, map.getZoom());
var location = new google.maps.LatLng({lat:data.address_lat2, lng:data.address_lng2});
var bounds = new google.maps.LatLngBounds();
bounds.extend(location.position);
map.fitBounds(bounds);
}
这是我的平滑缩放功能
function smoothZoom (map, max, cnt) {
if (cnt >= max) {
return;
} else {
z = google.maps.event.addListener(map, 'zoom_changed', function(event){
google.maps.event.removeListener(z);
smoothZoom(map, max, cnt + 1);
});
setTimeout(function(){map.setZoom(cnt)}, 150);
}
}
A没有将A作为参数的构造函数。这是无效语法:
var location = new google.maps.LatLng({lat:data.address_lat2, lng:data.address_lng2});
应该是:
var location_place = new google.maps.LatLng(data.address_lat2, data.address_lng2);
或:
只有当parseFloat是字符串时,才需要它
另外:location不是一个好的变量名。请参阅或发现这行代码bounds.extendlocation.position;应该是bounds.extend{lat:data.address_lat2,lng:data.address_lng2}谢谢你的评论,我尝试了你的建议,但没有成功,错误仍然返回。通常情况下,我感到困惑。这不可能。错误是否来自代码中的另一行?请确保将上述内容应用到所有代码中。如果仍然存在问题,请使用允许重现问题的更新问题。我个人使用c逐位输入代码,并将其缩小为几行代码,这就是变量位置={lat:parseFloatdata.address_lat2,lng:parseFloatdata.address_lng2};bounds2.extendlocation.position;location不是一个好的变量名。请看,或者幸运的是,这不是问题所在,但我明白为什么它不是一个好的变量名。谢谢您的帮助。请提供这一点来说明您的问题。这是一个相当大的代码库,有些方面依赖于其他方面。尤其是输入邮政编码或l因此,提供一个简单的例子需要相当长的时间。当我继续每天的工作时间时,我会继续做下去。
var location_place = {lat:parseFloat(data.address_lat2), lng:parseFloat(data.address_lng2)};