Не повторяющиеся маркеры в Google Maps API V3 (JS) - PullRequest
1 голос
/ 25 марта 2012

это возможно, чтобы маркеры не повторялись по горизонтали, так как я только хочу, чтобы маркер отображался на карте, и я не повторяю свою карту.Как вы можете видеть здесь, это очень раздражает: 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 ]

1 голос
/ 22 июня 2016

При создании объекта маркера установите для optimized значение false, например:

var marker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  title: 'Hello World!',
  optimized: false
});
0 голосов
/ 26 марта 2012

Есть одна техника, которая может помочь, это с этого сайта, «Ограничение диапазона»

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

Это в V2, поэтому я собрал здесь jsfiddle V3.

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

Вы увидите, что карта не будет отображаться слишком далеко от начальной точки.То есть вы не можете перетащить карту за пределы предопределенных пределов.

Однако вам придется уменьшить видимую область, если вы выберете этот метод (он ничего не делает с повторяющимися маркерами).

0 голосов
/ 26 марта 2012

Это потому, что при уровнях масштабирования 1 и 2 карта должна повторяться, чтобы не было пустого пространства. То же самое происходит на maps.google.com. Что вы можете сделать, это использовать уровень масштабирования 3 и 4 вместо этого. Вам придется изменить свой код, чтобы содержимое содержало больше пустого синего заполнителя, но карта больше не будет повторяться. И детали карты все равно будут выглядеть хорошо. Имеет ли это смысл?

...