有没有一种方法可以根据图像的可用性来设置Google静态地图的缩放级别?

Joh*_*ohn 5 html javascript static google-maps zoom

我在客户的工作环境中使用静态地图。我喜欢17的缩放比例(对于整个地球,缩放比例为0,最接近的缩放比例为21),但是根据图像位置的来源,Google可能无法在17的缩放比例下提供图像。 ,告诉Maps API,以动态方式选择可能的最高缩放比例,最高可达17?我还没有办法做到这一点,但我肯定会提出任何建议。

Jas*_*aro 5

据我所知,静态地图必须在网址的查询字符串中设置缩放比例,例如

&zoom=17 要么 &z=17

如果您使用的是非静态地图,则可以轻松找到和/或设置最大缩放比例:

第2版​​:http//googlegeodevelopers.blogspot.com/2009/06/how-low-can-you-go-introducing.html

第3版:http//code.google.com/apis/maps/documentation/javascript/services.html#MaxZoom

鉴于您使用的是静态方法,我认为您有两种选择:

  1. 不要在网址查询上设置缩放比例,而应让Google地图确定“最佳”缩放比例。
  2. 将缩放比例设置为17或什至更少(14或15),然后允许用户使用链接进行放大,该链接会使用其他URL字符串刷新地图。(您需要使用javascript执行此操作)

编辑

这是实现js缩放的一种方法。(我对此很感兴趣,并一起破解了。我相信有更好/更优雅的方式)

的HTML

<img src="http://maps.googleapis.com/maps/api/staticmap?center=55.516192,-87.39624&size=400x400&maptype=satellite&sensor=false&zoom=12" />

<input type="submit" id="in" value="Zoom in" />
<input type="submit" id="out" value="Zoom out" />
Run Code Online (Sandbox Code Playgroud)

确保缩放级别在查询字符串的末尾。

JS

$('#in').click(function(){
    var map = $('img').attr('src');
    var zoomPat = /(.+)(zoom=)([\d]*)/;
    var zoomLevel = map.match(zoomPat);
    var zoomLevelNum = Number(zoomLevel[3]); 

    if(zoomLevelNum == 21){
       alert('Maximum level reached');
    } 
    else{    
    var newZoom = zoomLevel[1] + zoomLevel[2] + (zoomLevelNum + 1);
    $('img').attr('src', newZoom);           
    } 

});

$('#out').click(function(){
    var map = $('img').attr('src');
    var zoomPat = /(.+)(zoom=)([\d]*)/;
    var zoomLevel = map.match(zoomPat);
    var zoomLevelNum = Number(zoomLevel[3]); 

    if(zoomLevelNum == 0){
       alert('Minimum level reached');
    } 
    else{    
    var newZoom = zoomLevel[1] + zoomLevel[2] + (zoomLevelNum - 1);
    $('img').attr('src', newZoom);           
    } 

});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/jasongennaro/FFTKG/2/