美文网首页
使用高德地图时,遇到的两个小问题及解决方法

使用高德地图时,遇到的两个小问题及解决方法

作者: SySean | 来源:发表于2018-08-21 15:28 被阅读34次

    问题一

    问题描述:
    当地图上有遮挡层view时,希望当设置当前地图的中心点时,能移动地图中心点到没有view部分的中心位置。

    amap_center

    解决方法:
    需要自己计算没有View部分的中心位置相对屏幕的具体坐标,然后可以参考MAMapView的下面方法进行设置

    ///地图的视图锚点。坐标系归一化,(0, 0)为MAMapView左上角,(1, 1)为右下角。默认为(0.5, 0.5),即当前地图的视图中心 (since 5.0.0)
    @property (nonatomic, assign) CGPoint screenAnchor;
    

    问题二

    问题描述:
    高德地图加载点标记时,一个经纬度只能添加一个点标记,如果出现坐标点重复的问题,后添加的点将不会显示在地图上。

    解决方法:
    可以通过自定义点标记的数据模型类MAPointAnnotation,重写isEqual方法。默认是只比较经纬度的hash字符串,你可以定义一些自己需要的比较逻辑,self表示当前地图上的点,object表示即将添加的点,如果返回YES,则不添加;如果返回NO,则添加并替换原来的点。

    - (NSUInteger)hash
    {
        NSString *toHash = [NSString stringWithFormat:@"%.5F%.5F", self.coordinate.latitude, self.coordinate.longitude];
        return [toHash hash];
    }
    
    - (BOOL)isEqual:(id)object
    {
        //判断俩个点坐标是否一致
        BOOL isEqual = [self hash] == [object hash];
        //添加自己的比较逻辑
        return isEqual;
    }
    

    相关文章

      网友评论

          本文标题:使用高德地图时,遇到的两个小问题及解决方法

          本文链接:https://www.haomeiwen.com/subject/nmcjiftx.html