如何在谷歌地图上选择多个标记

时间:2015-09-08 14:08:23

标签: javascript php google-maps google-maps-api-3

我是google地图和php的新手,假设我在地图上有100个标记,我想从它们中选择15个标记,如果标记点击它会改变标记的颜色并做一些动作。在此代码中如果我单击标记,它只显示从数据库获取数据的弹出窗口。

这是我的谷歌地图初始化代码使用PHP ..任何帮助的朋友

 <html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
 <title>Google Map API V3 with markers</title>
 <style type="text/css">
 body { font: normal 10pt Helvetica, Arial; }
 #map { width: 800px; height: 600px; border: 0px; padding: 0px; }
 </style>
 <script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript>
 <script type="text/javascript">
   var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/blue.png",
   new google.maps.Size(32, 32), new google.maps.Point(0, 0),
   new google.maps.Point(16, 32));
   var center = null;
   var map = null;
   var currentPopup;
   var bounds = new google.maps.LatLngBounds();
   function addMarker(lat, lng, info) {
   var pt = new google.maps.LatLng(lat, lng);
   bounds.extend(pt);
   var marker = new google.maps.Marker({
   position: pt,
   icon: icon,
   map: map
   });
   var popup = new google.maps.InfoWindow({
   content: info,
   maxWidth: 300
   });
   google.maps.event.addListener(marker, "click", function() {
    if (currentPopup != null) {
     currentPopup.close();
     currentPopup = null;
     }
    popup.open(map, marker);
    currentPopup = popup;
    });
   google.maps.event.addListener(popup, "closeclick", function() {
   map.panTo(center);
   currentPopup = null;
   });
   }
   function initMap() {
   map = new google.maps.Map(document.getElementById("map"), {
   center: new google.maps.LatLng(0, 0),
   zoom: 5,
   mapTypeId: google.maps.MapTypeId.ROADMAP,
   mapTypeControl: false,
   mapTypeControlOptions: {
   style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
    },
   navigationControl: true,
   navigationControlOptions: {
   style: google.maps.NavigationControlStyle.SMALL
   }
   });

   <?php
   $query = pg_query("SELECT * FROM example");
   while ($row = pg_fetch_array($query)){
   $name=$row['name'];
   $lat=$row['lat'];
   $lon=$row['lon'];
   $desc=$row['description'];
   echo ("addMarker($lat, $lon,<b>$name</b><br/>$desc');\n");
   }
   ?>

   center = bounds.getCenter();
   map.fitBounds(bounds);
    }
   </script>
   </head>
   <body onload="initMap()" style="margin:0px; border:0px; padding:0px;">
   <div id="map"></div>
   </html>

1 个答案:

答案 0 :(得分:0)

试试这个(在你的代码中,在第40行附近):

google.maps.event.addListener(marker, "click", function() {
  this.setIcon({url: 'http://maps.google.com/mapfiles/ms/micons/purple.png'});
});