如何在此设置“setMap”功能以将此代码移植到v3?或者将它通常移植到v3 ......
// map recenter,如果element在mapscreen之外
while ((!map.getBounds().containsLatLng(marker.getPosition())) & (showAllCategoryElements == 0)) {
var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng()) / 2;
var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat()) / 2;
map.panTo(new google.maps.LatLng(newCenterPointLat, newCenterPointLng));
map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng));
if (!map.getBounds().containsLatLng(marker.getPosition())){
map.zoomOut();
}
这是一个示例http://d.hatena.ne.jp/tsmsogn/20111216/1324026723 一些提示:markus.tao.at/geo/google-maps-api-v3-is-in-town /
我还导入https://github.com/tparkin/Google-Maps-Point-in-Polygon js以获得“containsLatLng”支持
感谢您提供帮助或提示
答案 0 :(得分:3)
根据API文档,.getbounds()返回google.maps.LatLngBounds而不是maps.Polygon。
由于LatLngBounds具有包含函数,因此您无需额外导入。
map.getBounds().contains(marker.getPosition()) ....
https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds
答案 1 :(得分:2)
在谷歌地图v3中,我们有另一种方法。 这是最好的例子。 https://developers.google.com/maps/documentation/javascript/examples/poly-containsLocation