是否可以不让标记水平重复,因为我只希望标记显示在地图上,而我不会重复我的地图。 正如你在这里看到的,这很烦人: 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');
}
提前致谢!
答案 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。
你会看到地图不会显示离初始点太远。也就是说,您无法将地图拖动到预定义的限制之外。
但是,如果选择此方法,则必须缩小可视区域(它对重复标记没有任何作用)。