Javascript 谷歌地图API V3(JS)中不重复标记

Javascript 谷歌地图API V3(JS)中不重复标记,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,是否可以不让标记水平重复,因为我只希望标记显示在地图上,而不是重复我的地图。 正如你在这里看到的,这是非常令人担忧的: 我当前以以下方式初始化地图: var map; var mapTypeOptions = { getTileUrl: function(coord, zoom) { if (coord.y < 0 || coord.y >= 1 << zoom || coord.x < 0 || coord.x >= 1 << z

是否可以不让标记水平重复,因为我只希望标记显示在地图上,而不是重复我的地图。 正如你在这里看到的,这是非常令人担忧的:

我当前以以下方式初始化地图:

 var map;
  var mapTypeOptions = {
    getTileUrl: function(coord, zoom) { if (coord.y < 0 || coord.y >= 1 << zoom || coord.x < 0 || coord.x >= 1 << zoom){ return "sam/map/samap_a.jpg"; } return "sam/map/samap_"+zoom+"_"+coord.x+"_"+coord.y+".jpg"; },
    tileSize: new google.maps.Size(256, 256),
    maxZoom: 2,
    minZoom: 1,
    name: "Map",
    opacity: 1.0,
    isPng: false,
    alt: "Map"
  }; 

    var satTypeOptions = { 
    getTileUrl: function(coord, zoom) { if (coord.y < 0 || coord.y >= 1 << zoom || coord.x < 0 || coord.x >= 1 << zoom){ return "sam/map/samap_a.jpg"; } return "sam/sat/samap_"+zoom+"_"+coord.x+"_"+coord.y+".jpg"; },
    tileSize: new google.maps.Size(256, 256),
    maxZoom: 2,
    minZoom: 1,
    name: "Satelite"
  };
  var mapMapType = new google.maps.ImageMapType(mapTypeOptions);
  var satMapType = new google.maps.ImageMapType(satTypeOptions);

  function initialize() {
    var myLatlng = new google.maps.LatLng(0, 0);
    var myOptions = {
      center: myLatlng,
      zoom: 1,
      streetViewControl: false,
      panControl: false,
      zoomControl: false,
      scaleControl: false,
      mapTypeControlOptions: {
        mapTypeIds: ["map", "sat"]
      }
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    map.mapTypes.set('map', mapMapType);
    map.mapTypes.set('sat', satMapType);    
    map.setMapTypeId('map');

  }
var映射;
var mapTypeOptions={

getTileUrl:函数(坐标,缩放){if(coord.y<0 | | coord.y>=1=1=1=1=1这是因为在缩放级别1和2时,地图必须重复才能没有空格。在maps.google.com上也会发生同样的情况。你可以改为使用缩放级别3和4。你必须更改代码,使内容包含更多的空白蓝色填充物,但地图将不再重复地图细节看起来仍然不错。这有意义吗?

这是因为在缩放级别1和2时,地图必须重复,以避免出现空白。在maps.google.com上也会发生同样的情况。您可以使用缩放级别3和4。您必须更改代码,使内容包含更多的空白蓝色填充物,但地图将不会出现空白重复一遍。地图的细节看起来还是不错的。这有意义吗?

有一种技术可以帮上忙,它来自这个网站,“射程限制”

它在V2中,所以我在这里放了一个v3jsfiddle

您将看到地图不会显示得离初始点太远。也就是说,您不能将地图拖动到预定义限制之外


但是,如果您选择此方法,则必须缩小可视区域(它对重复标记没有任何作用)。

有一种技术可以帮助您,它来自此网站,“范围限制”

它在V2中,所以我在这里放了一个v3jsfiddle

您将看到地图不会显示得离初始点太远。也就是说,您不能将地图拖动到预定义限制之外


但是,如果选择此方法,则必须缩小可视区域(对重复标记不起任何作用)。

创建标记对象时,请将“优化”设置为false,例如:

var marker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  title: 'Hello World!',
  optimized: false
});

创建标记对象时,将“优化”设置为false,例如:

var marker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  title: 'Hello World!',
  optimized: false
});

你们能对这个解决方案进行一点扩展吗?我知道你们说的基本上是把一堆边界瓷砖做成蓝色填充物,但你们会怎么做?你们会如何选择哪个瓷砖是蓝色填充物,给定任何给定的要求瓷砖的x,y坐标?你们能对这个解决方案进行一点扩展吗?我知道你们是在对basic说ally将一堆边界图块设置为蓝色填充,但您将如何做到这一点?给定任何给定请求图块的x、y坐标,您将如何选择哪些图块为蓝色填充?或者,设置draggable:true也可以,但您的标记为draggable。或者,设置draggable:true也可以,但您的标记为draggableThat Fiddle不再适用于混合内容的b/c。将地图URL更新为HTTPS可修复此问题。该Fiddle不再适用于混合内容的b/c。将地图URL更新为HTTPS可修复此问题。