怎么实现地图的自适应缩放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现地图的自适应缩放相关的知识,希望对你有一定的参考价值。

设置缩放的方法
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(15).build()));
//设置缩放级别
或者是
float zoomLevel = Float.parseFloat(t.getText().toString());
MapStatusUpdate u = MapStatusUpdateFactory.zoomTo(zoomLevel);
mBaiduMap.animateMapStatus(u);
以上是百度的示例程序BaiduMapsApiDemo(在百度LBS开放平台-》android SDK有下载)中,MapControlDemo.java中的一段,用来设置地图缩放比例的
参考技术A 设置缩放的方法mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(newMapStatus.Builder().zoom(15).build()));//设置缩放级别或者是floatzoomLevel=Float.parseFloat(t.getText().toString());MapStatusUpdateu=MapStat本回答被提问者采纳

自动调整缩放以适应谷歌地图中的所有标记

【中文标题】自动调整缩放以适应谷歌地图中的所有标记【英文标题】:Automatically adjust zoom to accommodate all marker in a google map 【发布时间】:2011-04-23 07:15:02 【问题描述】:

使用最新版本的 Google 地图。如何使用经纬度添加标记并使用 JavaScript 自动调整地图的缩放级别以包含所有标记?

【问题讨论】:

【参考方案1】:

Google Maps API v3 提供了一个 LatLngBounds 对象,您可以向其中添加多个 LatLng 对象。然后,您可以将其传递给Map.fitBounds() 函数,如下所述:

Zoom-To-Fit All Markers, Polylines or Polygons on A Google Map - API v2 Zoom-to-Fit All Markers on Google Map v3

部分示例

var latlng = [
    new google.maps.LatLng(1.23, 4.56),
    new google.maps.LatLng(7.89, 1.01),
    // ...
]; 
var latlngbounds = new google.maps.LatLngBounds();
for (var i = 0; i < latlng.length; i++) 
    latlngbounds.extend(latlng[i]);

map.fitBounds(latlngbounds);

【讨论】:

顺便说一句:对标记数组进行操作时,您可以使用getPosition() 方法获取标记的位置。【参考方案2】:

您可以通过为每个纬度/经度对实例化一个 marker 对象来为您的谷歌地图添加标记:

var marker = new google.maps.Marker(
    position: currentLatLng, 
    map: map,
    title:"Title!"
); 

标记构造器上的map 选项会将新市场对象与您的地图相关联。

要缩放地图以包含新标记,请在 map 对象上使用 fitBounds 方法。 fitBounds 将latLngBounds 对象作为参数。这个对象有一个方便的 extend 方法,它将调整边界以包含新的纬度/经度。因此,您只需要遍历所有点,在单个 latLngBounds 对象上调用 extend。这将扩展范围以包括所有标记。完成此操作后,将此对象传递给 map 上的 fitBounds 方法,它将缩放以显示所有新标记。

【讨论】:

虽然您提供了正确的答案first.. 像往常一样,大部分分数都指向了实际上有一些示例代码的另一个same 答案。 . @abbood 感谢您的提示;)【参考方案3】:

以下内容对我有用

map.fitBounds(bounds);


 // add a zoom to the map


var listener = google.maps.event.addListener(map, 'idle', function()
        
          if(map.getZoom() > 16)
            map.setZoom(17);
          google.maps.event.removeListener(listener);
        );

在 setZoom() 方法中设置您想要的缩放。值越大,位置细节显示越宽,值越小,位置细节会节流和缩小

【讨论】:

以上是关于怎么实现地图的自适应缩放的主要内容,如果未能解决你的问题,请参考以下文章

ios怎么实现uiview的自适应高度

VS2013 VB.NET窗口控件怎么做自适应

CSS3技术-雪碧图自适应缩放

css3怎么实现屏幕自适应

百度地图API一:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图

Spark 3 中的自适应查询执行