2016-08-22 145 views
-1

我正在使用谷歌地圖API來顯示多個地理位置的正常工作。我添加了一個鏈接,當我點擊相應的鏈接時,我想用它來居中放置一個位置。點擊Google地圖上的谷歌地圖標記

我已經的onclick添加到中心的位置,但其沒有工作

<a id="1" href="#">Go to 1</a><br> 
<a id="2" href="#">Go to 2</a><br> 
<a id="3" href="#">Go to 3</a><br> 
<a id="4" href="#">Go to 4</a><br> 
<a id="5" href="#">Go to 5</a><br> 

var labels = '123456'; 
var labelIndex = 0; 

var locations = [ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.923036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 151.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.950198, 151.259302, 1] 
]; 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(-33.92, 151.25), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

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, 
    label: labels[labelIndex++ % labels.length], 

    }); 
}; 

$("a").click(function(){ 
//zoom in on location 

    var id = ($(this).data('id')); 
    google.maps.event.trigger(id , "resize"); 
    map.panTo(marker.getPosition()); 
    map.setZoom(14); 
    return false; 
}); 

Project on Jsfiddle

回答

0

我在的jsfiddle更新代碼:http://jsfiddle.net/3gz43tqq/3/

$("a").click(function(){ 
    var id = this.id; 
    map.setCenter(new google.maps.LatLng(locations[id][1], locations[id][2])) 
    return false; 
}); 

你可以得到ID from a使用功能setCenter(LatLng對象)

0

更新小提琴:http://jsfiddle.net/3gz43tqq/5/

工作代碼片段:

var labels = '123456'; 
 
var labelIndex = 0; 
 

 
var locations = [ 
 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
 
    ['Coogee Beach', -33.923036, 151.259052, 5], 
 
    ['Cronulla Beach', -34.028249, 151.157507, 3], 
 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
 
    ['Maroubra Beach', -33.950198, 151.259302, 1] 
 
]; 
 

 
var map = new google.maps.Map(document.getElementById('map'), { 
 
    zoom: 10, 
 
    center: new google.maps.LatLng(-33.92, 151.25), 
 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
 
}); 
 

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

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

 
$("a").click(function() { 
 
    // labels start at 1, array starts at 0 
 
    map.panTo(markers[this.id-1].getPosition()); 
 
    map.setZoom(14); 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.google.com/maps/api/js"></script> 
 
<div id="map" style="width: 500px; height: 400px;"></div> 
 
<div> 
 
    <a id="1" href="#">Go to 1</a> 
 
    <br> 
 
    <a id="2" href="#">Go to 2</a> 
 
    <br> 
 
    <a id="3" href="#">Go to 3</a> 
 
    <br> 
 
    <a id="4" href="#">Go to 4</a> 
 
    <br> 
 
    <a id="5" href="#">Go to 5</a> 
 
    <br> 
 
</div>