[英]Google Maps API markers and zoom
我是Google Maps API的新手。
我的情况:以全屏Google地图为背景的网站。
第一个问题:如果用户向下滚动或放大太多,则背景为灰色。 是否可以限制最大缩小并且他无法滚动? 或者,可能会垂直重复地图(带有标记)。 如果可以设置最大缩小并将其锁定在地图中,我如何动态计算与屏幕分辨率相关的最大缩小?
第二个问题:是否可以向标记添加自定义javascript? 示例:我创建5个标记,每个标记都应保留一个自定义值(数据库中的ID)。 单击时,应使用自定义值作为参数调用我自己的函数,并执行一些操作。
编辑:这就是我用灰色的意思:(谷歌地图的垂直“结束”)
地图对象具有属性maxZoom,在创建地图时进行设置
是的,有可能,您可以添加点击事件,更改打开的弹出窗口,并且由于它是JavaScript,因此您可以添加任何其他数据,就像markr.MyData = 'something interesting'
我不确定您指的是什么灰色部分? 我在Google地图中看不到最大和最小缩放的灰色部分
好的。 终于成功了! :)
固定灰色区域(手柄也会缩放):
function setBounds() {
google_allowedBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-85.000, -122.591),
new google.maps.LatLng(85.000, -122.333));
google_lastCenter = google_map.getCenter();
google_lastZoom = google_map.getZoom();
google.maps.event.addListener(google_map, "bounds_changed", function () {
checkBounds();
});
google.maps.event.addListener(google_map, 'center_changed', function () {
checkBounds();
});
}
function checkBounds() {
if (google_allowedBounds.getNorthEast().lat() > google_map.getBounds().getNorthEast().lat()) {
if(google_allowedBounds.getSouthWest().lat() < google_map.getBounds().getSouthWest().lat()) {
google_lastCenter = google_map.getCenter();
google_lastZoom = google_map.getZoom();
return true;
}
}
google_map.panTo(google_lastCenter);
google_map.setZoom(google_lastZoom);
return false;
}
标记点击处理程序:
google_listener = google.maps.event.addListener(marker, 'click', markerHandler);
function markerHandler(event) {
window.console.log(this);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.