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可修复此问题。