問題一
問題描述:
當(dāng)?shù)貓D上有遮擋層view時,希望當(dāng)設(shè)置當(dāng)前地圖的中心點(diǎn)時,能移動地圖中心點(diǎn)到?jīng)]有view部分的中心位置。

amap_center
解決方法:
需要自己計算沒有View部分的中心位置相對屏幕的具體坐標(biāo),然后可以參考MAMapView的下面方法進(jìn)行設(shè)置
///地圖的視圖錨點(diǎn)。坐標(biāo)系歸一化,(0, 0)為MAMapView左上角,(1, 1)為右下角。默認(rèn)為(0.5, 0.5),即當(dāng)前地圖的視圖中心 (since 5.0.0)
@property (nonatomic, assign) CGPoint screenAnchor;
問題二
問題描述:
高德地圖加載點(diǎn)標(biāo)記時,一個經(jīng)緯度只能添加一個點(diǎn)標(biāo)記,如果出現(xiàn)坐標(biāo)點(diǎn)重復(fù)的問題,后添加的點(diǎn)將不會顯示在地圖上。
解決方法:
可以通過自定義點(diǎn)標(biāo)記的數(shù)據(jù)模型類MAPointAnnotation,重寫isEqual方法。默認(rèn)是只比較經(jīng)緯度的hash字符串,你可以定義一些自己需要的比較邏輯,self表示當(dāng)前地圖上的點(diǎn),object表示即將添加的點(diǎn),如果返回YES,則不添加;如果返回NO,則添加并替換原來的點(diǎn)。
- (NSUInteger)hash
{
NSString *toHash = [NSString stringWithFormat:@"%.5F%.5F", self.coordinate.latitude, self.coordinate.longitude];
return [toHash hash];
}
- (BOOL)isEqual:(id)object
{
//判斷倆個點(diǎn)坐標(biāo)是否一致
BOOL isEqual = [self hash] == [object hash];
//添加自己的比較邏輯
return isEqual;
}