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

时间:2012-03-25 18:21:56

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

是否可以不让标记水平重复,因为我只希望标记显示在地图上,而我不会重复我的地图。 正如你在这里看到的,这很烦人: http://lsres.com/playerdb/test2.php

我目前以这种方式初始化我的地图:

 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');

  }

提前致谢!

3 个答案:

答案 0 :(得分:1)

创建标记对象时,将optimize设置为false,例如:

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

答案 1 :(得分:0)

这是因为在缩放级别1和2时,地图必须重复才能没有空格。在maps.google.com上也会发生同样的事情。您可以做的是使用缩放级别3和4。您必须更改代码,以便内容包含更多空白蓝色填充,但地图将不再重复。地图细节仍然很好看。那有意义吗?

答案 2 :(得分:0)

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

http://econym.org.uk/gmap/range.htm

它在V2中,所以我在这里放了一个V3 jsfiddle。

http://jsfiddle.net/44e6y/1/

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

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