【问题标题】:Google Maps API - Marker ToolTipGoogle Maps API - 标记工具提示
【发布时间】:2014-03-18 16:01:31
【问题描述】:

我现在遇到了一点问题,我的谷歌地图标记标题没有显示。这是我的第一张地图,我不太确定自己做错了什么。

一切正常,并且标记显示,除非当您单击/悬停在标记上时,工具提示或标题没有显示,但它应该显示。

任何帮助都很棒!

<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
  function initialize() {

    // set mapOptions
    var mapOptions = {
      center: new google.maps.LatLng(40, -20),
      zoom: 3,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      styles: [{"featureType":"landscape","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","stylers":[{"saturation":-100},{"lightness":51},{"visibility":"simplified"}]},{"featureType":"road.highway","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"road.arterial","stylers":[{"saturation":-100},{"lightness":30},{"visibility":"on"}]},{"featureType":"road.local","stylers":[{"saturation":-100},{"lightness":40},{"visibility":"on"}]},{"featureType":"transit","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"administrative.province","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"labels","stylers":[{"visibility":"on"},{"lightness":-25},{"saturation":-100}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]}]
    };

    // set min and max zoom
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
    var opt = { minZoom: 3, maxZoom: 21 };
    map.setOptions(opt);

    // bounds of the desired area
    var allowedBounds = new google.maps.LatLngBounds(
      new google.maps.LatLng(-79.00, -180.00),
      new google.maps.LatLng(79.00, 180.00)
    );
    var boundLimits = {
      maxLat : allowedBounds.getNorthEast().lat(),
      maxLng : allowedBounds.getNorthEast().lng(),
      minLat : allowedBounds.getSouthWest().lat(),
      minLng : allowedBounds.getSouthWest().lng()
    };

    var lastValidCenter = map.getCenter();
    var newLat, newLng;
    google.maps.event.addListener(map, 'center_changed', function() {
      center = map.getCenter();
      if (allowedBounds.contains(center)) {
        // still within valid bounds, so save the last valid position
        lastValidCenter = map.getCenter();
        return;
      }
      newLat = lastValidCenter.lat();
      newLng = lastValidCenter.lng();
      if(center.lng() > boundLimits.minLng && center.lng() < boundLimits.maxLng){
        newLng = center.lng();
      }
      if(center.lat() > boundLimits.minLat && center.lat() < boundLimits.maxLat){
        newLat = center.lat();
      }
      map.panTo(new google.maps.LatLng(newLat, newLng));
    });

    // set markers
    var point = new google.maps.LatLng(40, -20);
    var marker = new google.maps.Marker({
        position: point,
        title:"Hello World!"
    });

    // To add the marker to the map, call setMap();
    marker.setMap(map);


  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

【问题讨论】:

  • 我有时也遇到过同样的问题。随机地,标记有/没有标题。我无法解决它。但我使用自定义叠加层作为标记标题。

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


【解决方案1】:

我使用的是 Google Maps InfoWindow,而不是标题:

希望这对其他人有帮助!

    var point = new google.maps.LatLng(40, -20);
    var data = "Hello World!";
    var infowindow = new google.maps.InfoWindow({
      content: data
    });
    var marker = new google.maps.Marker({
        position: point,
        title:"Hello World!"
    });
    google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(map,marker);
    });

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-02-16
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2015-07-01
  • 2012-04-12
  • 2014-02-13
相关资源
最近更新 更多