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

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

作者: 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