2012-03-25 68 views
1

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

我目前初始化我的地图是这样的:

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

    } 

提前感谢!

回答

1

当创建标记对象,设置优化为false,例如:

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

或者,设置draggable:true也可以,但是那么你的标记是可拖动的 – 2016-06-22 02:16:54

0

这是因为在缩放级别1和2时,地图必须重复以不留空白区域。同样的事情发生在maps.google.com。你可以做的是使用缩放级别3和4。您必须更改代码,以便内容包含更多空白蓝色填充,但地图不再重复。而地图细节仍然看起来不错。那有意义吗?

+0

你能在这个解决方案扩大一点?我知道你的意思是基本上把一堆边界砖做成蓝色填充物,但你会怎么做?如果给定任何给定瓦片的x,y坐标,您将如何选择哪些瓦片是蓝色填充物? – 2012-11-05 02:54:31

0

有一种技术可以帮助,这是从这个网站上,“范围限制”

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

这是在V2,所以我在这里把一个V3的jsfiddle。

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

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

但是,如果您选择此方法(它对重复标记不起作用),您将不得不缩小可视区域。