我试图进入地图中的第一个市场,但我无法使其发挥作用。
首先,我将标记存储在一个数组中,此时我只需要第一个,稍后我将创建整个逻辑。
这是代码:
var geocoder;
var map;
var markersArray = [];
//Initialization
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: {lat: 14.601313, lng: -90.519114},
});
map.addListener('click', function(e) {
placeMarkerAndPanTo(e.latLng, map);
});
}
//Add marker function
function placeMarkerAndPanTo(latLng, map) {
marker = new google.maps.Marker({
position: latLng,
map: map
});
markersArray.push(latLng);
map.panTo(latLng);
}
//Button: click move to the very first marker
$(document).ready(function(){
$('#MyButton').click(function(){
alert("click");
alert(markersArray[0].lat());
map.panTo(markersArray[0].lat(),markersArray[0].lng());
});
});
修正:
$(document).ready(function(){
$('#MyButton').click(function(){
if (markersArray.length > 0){
map.setCenter(markersArray[0]);
}
//map.fitBounds(markersArray[0].lat(),markersArray[0].lng());
});
});
答案 0 :(得分:1)
您的地图变量是初始化函数的本地变量(至少是包含实际地图的变量)。全局映射变量永远不会初始化。
变化:
var map;
//Initialization
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
要:
var map;
//Initialization
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {