【问题标题】:Google map marker label text color change谷歌地图标记标签文字颜色变化
【发布时间】:2017-05-19 14:39:28
【问题描述】:

我正在尝试将 Google 地图标记标签颜色更改为白色,同时将事件悬停。如何更改标签颜色。

我的代码是

function hover(id) { 

var icon2 = "<?php  echo base_url(). "bootstrap/images/tooltip_solid.png";?>";
    for ( var i = 0; i< markers.length; i++) { 
        if (parseInt(id) == parseInt(markers[i].id)) {  
           markers[i].setIcon(icon2); 
            markers[i].setZIndex(99999999999999);

           break;
        }
   } 
}

【问题讨论】:

    标签: javascript google-maps google-maps-markers


    【解决方案1】:

    最简单的方法是为每个标记创建 mouseover/mouseout 事件处理程序以更新标签文本颜色。

    // creates a marker with a closure for the event functions.
    function createMarker(latLng, text, label) {
      var marker = new google.maps.Marker({
        position: latLng,
        map: map,
        label: {text: label, color: "white"}
      });
      google.maps.event.addListener(marker, "mouseover", function(evt) {
        var label = this.getLabel();
        label.color="black";
        this.setLabel(label);
      });
        google.maps.event.addListener(marker, "mouseout", function(evt) {
        var label = this.getLabel();
        label.color="white";
        this.setLabel(label);
      });
      return marker;
    }
    

    proof of concept fiddle

    代码 sn-p:

    var geocoder;
    var map;
    
    function initialize() {
      map = new google.maps.Map(
        document.getElementById("map_canvas"), {
          center: new google.maps.LatLng(37.4419, -122.1419),
          zoom: 13,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });
      // Mountain View, CA, USA (37.3860517, -122.0838511)
      var marker1 = createMarker({
        lat: 37.3860517,
        lng: -122.0838511
      }, "Mountain View, CA", "A");
      // Palo Alto, CA, USA (37.4418834, -122.14301949999998)
      var marker2 = createMarker({
        lat: 37.4418834,
        lng: -122.14301949999998
      }, "Palo Alto", "B");
      // Stanford, CA, USA (37.42410599999999, -122.1660756)
      var marker3 = createMarker({
        lat: 37.42410599999999,
        lng: -122.1660756
      }, "Stanford, CA", "C");
      var bounds = new google.maps.LatLngBounds();
      bounds.extend(marker1.getPosition());
      bounds.extend(marker2.getPosition());
      bounds.extend(marker3.getPosition());
      map.fitBounds(bounds);
    }
    google.maps.event.addDomListener(window, "load", initialize);
    
    function createMarker(latLng, text, label) {
      var marker = new google.maps.Marker({
        position: latLng,
        map: map,
        label: {
          text: label,
          color: "white"
        }
      });
      google.maps.event.addListener(marker, "mouseover", function(evt) {
        var label = this.getLabel();
        label.color = "black";
        this.setLabel(label);
      });
      google.maps.event.addListener(marker, "mouseout", function(evt) {
        var label = this.getLabel();
        label.color = "white";
        this.setLabel(label);
      });
      return marker;
    }
    html,
    body,
    #map_canvas {
      height: 100%;
      width: 100%;
      margin: 0px;
      padding: 0px
    }
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
    <div id="map_canvas"></div>

    【讨论】:

      【解决方案2】:

      试试这个

      var marker = new google.maps.Marker({
        position: new google.maps.LatLng(37.4419, -122.1419),
        map: map,
        label: {
          text: 'A',
          color: 'white',
        }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-27
        相关资源
        最近更新 更多