首页 新闻 搜索 专区 学院

使用百度地图时如何让标注自动呈现在最佳视野内

0
[已解决问题] 解决于 2016-05-18 14:39

ios开发中,使用百度地图时如何让标注自动呈现在最佳视野内;有没有相关的api?

求大神解疑,项目中有个需求就是,地图根据标注点的分布,来最优的显示所有标注点,从而改变地图的zoomLevel;我百度知道前端用的是setViewPort;百度了和在demo中都没找到相关方法;求解疑?

hazhade的主页 hazhade | 菜鸟二级 | 园豆:204
提问于:2016-05-11 17:33
< >
分享
最佳答案
0

swift版:

在公交分类里找到改方法;自己测试也没问题。

传入的参数为你自己的地图上标注点的折线;直接调用就ok;地图会根据所有标注点显示范围。

//根据polyline设置地图范围

    func mapViewFitPolyLine(polyline: BMKPolyline!) {

        if polyline.pointCount < 1 {

            return

        }

        

        let pt = polyline.points[0]

        var ltX = pt.x

        var rbX = pt.x

        var ltY = pt.y

        var rbY = pt.y

        

        for i in 1..<polyline.pointCount {

            let pt = polyline.points[Int(i)]

            if pt.x < ltX {

                ltX = pt.x

            }

            if pt.x > rbX {

                rbX = pt.x

            }

            if pt.y > ltY {

                ltY = pt.y

            }

            if pt.y < rbY {

                rbY = pt.y

            }

        }

        

        let rect = BMKMapRectMake(ltX, ltY, rbX - ltX, rbY - ltY)

        mapView!.visibleMapRect = rect

        mapView!.zoomLevel = mapView!.zoomLevel - 0.3

    }

hazhade | 菜鸟二级 |园豆:204 | 2016-05-18 14:39
其他回答(2)
0

你计算一下中心坐标,设置一下就可以了

上帝之城 | 园豆:2452 (老鸟四级) | 2016-05-11 22:42

已解决,谢谢。

支持(0) 反对(0) hazhade | 园豆:204 (菜鸟二级) | 2016-05-18 14:37
0

调用这个方法就可以

map.setViewport(points);

超期服役 | 园豆:204 (菜鸟二级) | 2017-03-08 09:52

不好意思看错了,这是js Api

支持(0) 反对(0) 超期服役 | 园豆:204 (菜鸟二级) | 2017-03-08 09:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册