Google地图 - 由于缩放而导致同一标记的多个实例

时间:2016-12-13 22:18:53

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

嗨我有一个场景,如果用户缩小,我会在给定位置有一个标记,以便标记所在的国家/地区显示两次,您会看到标记两次。

我想知道是否可以删除该标记的一个实例,以便一次只显示该标记的一个版本。

目前,它会打破叠加悬停行为,因为地图api无法确定叠加的位置,因为在给定时间点屏幕上有2个相同标记的实例。

由于

1 个答案:

答案 0 :(得分:0)

似乎可能是一个错误(或至少是非预期的行为)。

带有SVG图标的google.maps.Marker仅在贴图的中心实例上呈现:

var SvgMarker2 = new google.maps.Marker({
    map: map,
    icon: {
      path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0',
      fillColor: "red",
      fillOpacity: 1,
      strokeColor: '#000',
      strokeWeight: 2,
      scale: 1
    },
    position: new google.maps.LatLng(-30.4419, -72.1419)
  });

proof of concept fiddle

SVG Icons on Map

代码段

function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 0,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  var marker = new google.maps.Marker({
    map: map,
    position: map.getCenter()
  });
  var SvgMarker = new google.maps.Marker({
    map: map,
    icon: {
      path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z',
      fillColor: "red",
      fillOpacity: 1,
      strokeColor: '#000',
      strokeWeight: 2,
      scale: 1
    },
    position: new google.maps.LatLng(-30.4419, -122.1419)
  });
  var SvgMarker2 = new google.maps.Marker({
    map: map,
    icon: {
      path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0',
      fillColor: "red",
      fillOpacity: 1,
      strokeColor: '#000',
      strokeWeight: 2,
      scale: 1
    },
    position: new google.maps.LatLng(-30.4419, -72.1419)
  });
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>