gpt4 book ai didi

javascript - Google Maps Api - 不要在 Zoom 上更改 map 中心

转载 作者:行者123 更新时间:2023-11-30 15:10:00 26 4
gpt4 key购买 nike

是否可以在放大/缩小事件中保持相同的 map 中心?无论是使用滚轮、双击还是使用缩放控件,它的行为都应该相同。

我注意到在使用滚轮放大/缩小时鼠标指针在 map 上的位置存在偏差,我在文档中没有找到任何选项,但覆盖该偏差将是理想的。

here is a simple fiddle我如何初始化我的 map 。

var map = new google.maps.Map(document.getElementById("map_div"), {
center: new google.maps.LatLng(33.808678, -117.918921),
zoom: 15,
disableDefaultUI: true
});

最佳答案

根据@Adam 对评论的建议,我禁用了滚轮缩放,并在实例化 map 时禁用了双击缩放,并添加了事件监听器以使用我自己的实现来处理这些事件。

这是一个working fiddle和代码解释:

/*
* declare map as a global variable
*/
var map;
/*
* use google maps api built-in mechanism to attach dom events
*/
google.maps.event.addDomListener(window, "load", function() {
var myMap = document.getElementById("map_div");
/*
* create map
*/
var map = new google.maps.Map(myMap, {
center: new google.maps.LatLng(33.808678, -117.918921),
zoom: 15,
disableDefaultUI: true,
scrollwheel: false,
disableDoubleClickZoom: true
});
//function that will handle the wheelEvent
function wheelEvent(event) {
var e = window.event || e; // old IE support
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); //to know whether it was wheel up or down
map.setZoom(map.getZoom() + delta);
}

function zoomIn() {
map.setZoom(map.getZoom() + 1);
}

//add a normal event listener on the map container
myMap.addEventListener('mousewheel', wheelEvent, true);
myMap.addEventListener('DOMMouseScroll', wheelEvent, true);

//same with the double click
myMap.addEventListener('dblclick', zoomIn, true);

//add center changed listener for testing
google.maps.event.addListener(map, 'center_changed', function() {
console.log("this is what i'm trying to avoid");
});
});

关于javascript - Google Maps Api - 不要在 Zoom 上更改 map 中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45245457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com