How to solve the infobox label overlap on multiple markers on Google map

前端 未结 1 1320
清酒与你
清酒与你 2021-01-24 08:58

I have multiple markers on a Google Map with a custom icon. The marker represents a number of items in that region. I have added an infobox which serves as a label of how many i

相关标签:
1条回答
  • 2021-01-24 09:52

    You can use MarkerWithLabel

    The "basic" example has multiple characters. Related question: Google maps Marker Label with multiple characters

    code snippet:

     function initMap() {
       var latLng = new google.maps.LatLng(49.47805, -123.84716);
       var homeLatLng = new google.maps.LatLng(49.47805, -123.84716);
    
       var map = new google.maps.Map(document.getElementById('map_canvas'), {
         zoom: 13,
         center: latLng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
       });
    
       var marker1 = new MarkerWithLabel({
         position: homeLatLng,
         draggable: true,
         raiseOnDrag: true,
         map: map,
         labelContent: "$425K",
         labelAnchor: new google.maps.Point(22, 0),
         labelClass: "labels", // the CSS class for the label
         labelStyle: {
           opacity: 0.75
         }
       });
    
       var marker2 = new MarkerWithLabel({
         position: new google.maps.LatLng(49.475, -123.84),
         draggable: true,
         raiseOnDrag: true,
         map: map,
         labelContent: "$395K",
         labelAnchor: new google.maps.Point(22, 0),
         labelClass: "labels", // the CSS class for the label
         labelStyle: {
           opacity: 1.0
         }
       });
    
       var iw1 = new google.maps.InfoWindow({
         content: "Home For Sale"
       });
       var iw2 = new google.maps.InfoWindow({
         content: "Another Home For Sale"
       });
       google.maps.event.addListener(marker1, "click", function(e) {
         iw1.open(map, this);
       });
       google.maps.event.addListener(marker2, "click", function(e) {
         iw2.open(map, this);
       });
     }
     google.maps.event.addDomListener(window, 'load', initMap);
    .labels {
      color: red;
      background-color: white;
      font-family: "Lucida Grande", "Arial", sans-serif;
      font-size: 10px;
      font-weight: bold;
      text-align: center;
      width: 40px;
      border: 2px solid black;
      white-space: nowrap;
    }
    <script src="http://maps.googleapis.com/maps/api/js"></script>
    <script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerwithlabel/src/markerwithlabel.js"></script>
    <div id="map_canvas" style="height: 400px; width: 100%;"></div>
    <div id="log"></div>

    0 讨论(0)
提交回复
热议问题