我正在制作一个googlemap,一切正常,除了我似乎无法设置最大和最小缩放的事实(我想将级别限制为几个级别的默认缩放方式视图)
我尝试过使用map.getMimimumResolution,但这似乎不起作用 - 任何想法?
function initialize() {
var latlng = new google.maps.LatLng("<%=Html.Encode(Model.Field01.Field01) %>", "<%=Html.Encode(Model.Field01.Field03) %>");
var myOptions = {
zoom: 13,
center: latlng,
disableDefaultUI: false,
navigationControl: true,
navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("mapcontainer"), myOptions);
map.getMinimumResolution = function() { return 6 };
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: "<%=Model.AccomName %>"
});
}
任何想法,谢谢,
答案 0 :(得分:17)
有适当的配置参数:)
简单的例子:
<script type="text/javascript">
var latlng = new google.maps.LatLng(42.3493337, 13.398172299999942);
var options = {
zoom: 8,
minZoom: 6,
maxZoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById("map_canvas"), options);
</script>
这里有文件:
http://code.google.com/apis/maps/documentation/javascript/reference.html#MapOptions
快乐的编码!
答案 1 :(得分:4)
以下代码对我来说很顺利。没有闪烁,故障等.Maps API v3。
var inProcess = false;
function onZoomChanged() {
if (inProcess) return;
if (gmap.getZoom() > 16) {
inProcess = true;
gmap.setZoom(16);
inProcess = false;
return
}
else if (gmap.getZoom() < 10) {
inProcess = true;
gmap.setZoom(10);
inProcess = false;
return;
}
}
google.maps.event.addListener(gmap, 'zoom_changed', onZoomChanged);
答案 2 :(得分:2)
如上所述,到目前为止我在V3中找到的唯一方法是使用事件监听器。这是代码(以最大缩放级别12为例):
google.maps.event.addListener(map, "zoom_changed", function() {
if (map.getZoom() > 12) map.setZoom(12);
});
是的,丑陋,又脏又错,我知道。
答案 3 :(得分:1)
getMinimumResolution是GMapType方法,而不是GMap2方法。所以不要这样:
map.getMinimumResolution = function() { return 6 };
你可以这样做:
var mt = map.getMapTypes();
for (var i=0; i<mt.length; i++) {
mt[i].getMinimumResolution = function() {return 6;}
}
答案 4 :(得分:0)
看起来您正在使用Maps API版本3,它无法设置最小和最大分辨率。至少还没有。
你可以随时收听缩放变化并重置缩放,如果它不是你想要的那样 - 但那将是非常难看的。 :)
答案 5 :(得分:0)
试试这个。适合我的工作
// force normal maps type
map.setMapType(G_NORMAL_MAP);
// define minimum and maximum zoom levels
G_NORMAL_MAP.getMinimumResolution = function() { return 0; }
G_NORMAL_MAP.getMaximumResolution = function() { return 19; }
答案 6 :(得分:0)
我遇到了同样的问题
n_customMap.getMinimumResolution = function() { return 5 };
n_customMap.getMaximumResolution = function() { return 10 };
对我有用
您还应该将选项设置为
minZoom: 5,
maxZoom: 10