2013-07-16 59 views
3

我有这里的情况,请帮助我解决此问题
在具有多个标记的地图上,我使用了两个经度和纬度变量,并将它们用作中心点地图。如何突出多标记地图上的特定标记

我怎样才能

  1. 使用标记为这些经/纬用于中心的反弹或
    动画
  2. 改变这个中心标记的图标比其他人不同的
  3. 添加额外的信息框中的信息。

在此先感谢您的帮助

-----这里是代码

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
    <title>Google Maps Multiple Markers</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 500px; height: 400px;"></div> 

    <script type="text/javascript"> 
    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 lat1 = '-33.92' 
var long1 = '151.25' 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 10, 
     center: new google.maps.LatLng(lat1, long1), 
     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 
     }); 


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


    } 
    </script> 
</body> 
</html> 

回答

5
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
    <title>Google Maps Multiple Markers</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
      type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 500px; height: 400px;"></div> 

    <script type="text/javascript"> 
    var locations = [ 
     ['Coogee Beach', -33.923036, 151.259052, 5], 
     ['Bondi Beach', -33.890542, 151.274856, 4], 
     ['Cronulla Beach', -34.028249, 151.157507, 3], 
     ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
     ['Maroubra Beach', -33.950198, 151.259302, 1] 
    ]; 

    var lat_center = -33.923036, 
     long_center = 151.259052; 

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

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

    var marker, i, text; 

    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 
     }); 

     text = locations[i][0]; 

     if(locations[i][1] === lat_center && locations[i][2] === long_center) { 

      marker.setAnimation(google.maps.Animation.DROP); 
       marker.setIcon('http://maps.google.com/intl/en_us/mapfiles/ms/micons/purple.png'); 
     text += '<br>' + 'Additionl text for centered marker'; 
     } 

     google.maps.event.addListener(marker, 'click', (function(marker, text) { 
     return function() { 
      infowindow.setContent(text); 
      infowindow.open(map, marker); 
     } 
     })(marker, text)); 
    } 

    </script> 
</body> 
</html> 

List of markers available by google

More about markers

+0

非常感谢alkis 它的工作原理完善只用一个小毛刺 请考虑在代码中的位置的这个 块是静态的,总会有5项,包括库吉海滩 结果会有现在的Coogee海滩 重复标记6个标记怎样才能删除/更新coogee沙滩标记,这样只有地图上只有5个标记,而更新的标记是新的 –

+0

我更新了代码。如果这回答你的问题,不要忘记标记为回答,也许upvote:P。 – alkis

+0

alkis,你是一个明星......它的工作就像一个魅力......我希望如果我可以upvote到答案,但没有足够的声誉计数 –