• iOS 计算所有标注的经纬度范围 来确定地图显示区域


    1.计算所有点的经纬度范围

    //向点聚合管理类中添加标注 _imageDataArr是存放经纬度标注数组
        for (NSInteger i = 0; i < _imageDataArr.count; i++) {
            if (i==0) {
                //以第一个坐标点做初始值
                _minLat = _imageDataArr[i].latitude;
                _maxLat = _imageDataArr[i].latitude;
                _minLon = _imageDataArr[i].longitude;
                _maxLon = _imageDataArr[i].longitude;
            }else{
                //对比筛选出最小纬度,最大纬度;最小经度,最大经度
                _minLat = MIN(_minLat, _imageDataArr[i].latitude);
                _maxLat = MAX(_maxLat, _imageDataArr[i].latitude);
                _minLon = MIN(_minLon, _imageDataArr[i].longitude);
                _maxLon = MAX(_maxLon, _imageDataArr[i].longitude);
            }
        //动态的根据坐标数据的区域,来确定地图的显示中心点和缩放级别
        if (_imageDataArr.count > 0) {
            //计算中心点
            CLLocationCoordinate2D centCoor;
            centCoor.latitude = (CLLocationDegrees)((_maxLat+_minLat) * 0.5f);
            centCoor.longitude = (CLLocationDegrees)((_maxLon+_minLon) * 0.5f);
            BMKCoordinateSpan span;
            //计算地理位置的跨度
            span.latitudeDelta = _maxLat - _minLat;
            span.longitudeDelta = _maxLon - _minLon;
            //得出数据的坐标区域
            _region = BMKCoordinateRegionMake(centCoor, span);
        }
    

    2.地图显示标注区域

    /**
     *地图初始化完毕时会调用此接口
     *@param mapview 地图View
     */
    - (void)mapViewDidFinishLoading:(BMKMapView *)mapView {
        [_mapView setRegion:_region];
    }
    
  • 相关阅读:
    MongoDB + Spark: 完整的大数据解决方案
    07对象字面量
    05JavaScript中数组的使用
    04JavaScript中函数也是对象
    03JavaScript中的函数预解析
    02通过arguments实现方法重载
    01函数重名问题
    mxGraph 学习笔记 --mxGraph常用功能代码
    mxGraph学习笔记--设置节点鼠标事件
    mxGraph 学习笔记 --右键菜单
  • 原文地址:https://www.cnblogs.com/jyking/p/6737288.html
Copyright © 2020-2023  润新知