2017-06-20 91 views
-2

我有一个谷歌地图,其中包含单击地图上的标记时的infowindows。点击标记时,该标记的infowindow将打开并重新定位地图。单击Infowindow后重置Google Map位置

客户希望地图位置重置为原始位置,并在地图中关闭infowindow时关闭infowindow。

我到目前为止的代码如下。谢谢!!

<script src="https://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 
<script type="text/javascript"> 
var locations = [ 
    ['<div class="leftalign"><?php echo $addr1; ?></div> <div class="rightalign"><img src="<?php echo $addr1_image; ?>" alt="General Image"></div>', 38.4505064,-122.7268983, 4], 
    ['<div class="leftalign"><?php echo $addr2; ?></div> <div class="rightalign"><img src="<?php echo $addr2_image; ?>" alt="General Image"></div>', 38.377517, -121.946924, 5], 
    ['<div class="leftalign"><?php echo $addr3; ?></div> <div class="rightalign"><img src="<?php echo $addr3_image; ?>" alt="General Image"></div>', 38.574165, -121.559870, 3], 
    ['<div class="leftalign"><?php echo $addr4; ?></div> <div class="rightalign"><img src="<?php echo $addr4_image; ?>" alt="General Image"></div>', 38.794887, -121.217039, 2], 
    ['<div class="leftalign"><?php echo $addr5; ?></div> <div class="rightalign"><img src="<?php echo $addr5_image; ?>" alt="General Image"></div>', 38.670913, -121.160873, 1] 
]; 

var map = new google.maps.Map(document.getElementById('custommaploading'), { 
    zoom: 9, 
    center: new google.maps.LatLng(38.477191,-121.5400331), 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    scrollwheel: false, 
}); 

var infowindow = new google.maps.InfoWindow(); 

var marker, i; 

for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 
} 

+0

您是否尝试过实现该功能?你遇到什么问题? – geocodezip

+0

@geocodezip感谢您的回复。我添加了一个事件监听器,当点击地图时关闭infowindow,但我似乎无法重新定位地图。这里是我所拥有的:google.maps.event.addListener(map,“click”,function(event){ infowindow.close(); map.setCenter(center); }); –

+0

请通过编辑您的问题来解决评论。 – geocodezip

回答

-1

我想通了。以下是其他人需要的答案:

//Latitude and Longitude position 
var myLatlng = {lat: 38.477191, lng: -121.5400331}; 

//On map click 
google.maps.event.addListener(map, "click", function(event) { 
//Close all info windows 
infowindow.close(); 
//Center the map 
map.setCenter(myLatlng); 
});