第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

縮放MKMapView以適合注釋圖釘?

縮放MKMapView以適合注釋圖釘?

慕妹3146593 2019-10-04 15:57:33
我正在使用MKMapView,并在大約5-10公里的區(qū)域中向地圖添加了許多注釋圖釘。當(dāng)我運行該應(yīng)用程序時,我的地圖開始縮小以顯示整個世界,什么是最好的縮放地圖方式以使圖釘適合視圖?編輯: 我最初的想法是使用MKCoordinateRegionMake并從我的注釋中計算坐標(biāo)中心,longitudeDelta和latitudeDelta。我很確定這是可行的,但是我只是想檢查一下我是否沒有遺漏任何明顯的東西。添加的代碼,順便說一句:FGLocation是符合的類MKAnnotation,locationFake是NSMutableArray這些對象之一??偸菤g迎評論....- (MKCoordinateRegion)regionFromLocations {    CLLocationCoordinate2D upper = [[locationFake objectAtIndex:0] coordinate];    CLLocationCoordinate2D lower = [[locationFake objectAtIndex:0] coordinate];    // FIND LIMITS    for(FGLocation *eachLocation in locationFake) {        if([eachLocation coordinate].latitude > upper.latitude) upper.latitude = [eachLocation coordinate].latitude;        if([eachLocation coordinate].latitude < lower.latitude) lower.latitude = [eachLocation coordinate].latitude;        if([eachLocation coordinate].longitude > upper.longitude) upper.longitude = [eachLocation coordinate].longitude;        if([eachLocation coordinate].longitude < lower.longitude) lower.longitude = [eachLocation coordinate].longitude;    }    // FIND REGION    MKCoordinateSpan locationSpan;    locationSpan.latitudeDelta = upper.latitude - lower.latitude;    locationSpan.longitudeDelta = upper.longitude - lower.longitude;    CLLocationCoordinate2D locationCenter;    locationCenter.latitude = (upper.latitude + lower.latitude) / 2;    locationCenter.longitude = (upper.longitude + lower.longitude) / 2;    MKCoordinateRegion region = MKCoordinateRegionMake(locationCenter, locationSpan);    return region;}
查看完整描述

3 回答

?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

你說對了。


找到最大和最小緯度和經(jīng)度,應(yīng)用一些簡單的算法,然后使用MKCoordinateRegionMake。


對于iOS 7及更高版本,請使用showAnnotations:animated:,來自MKMapView.h:


// Position the map such that the provided array of annotations are all visible to the fullest extent possible. 

- (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated NS_AVAILABLE(10_9, 7_0);


查看完整回答
反對 回復(fù) 2019-10-04
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

這是我在這里為我工作的那個:


(編輯:我已經(jīng)使用@Micah的建議更新了解決方案,以將pointRect增加0.1以確保rect最終不會變得非常?。。?/p>


MKMapRect zoomRect = MKMapRectNull;

for (id <MKAnnotation> annotation in mapView.annotations)

{

    MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);

    MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);

    zoomRect = MKMapRectUnion(zoomRect, pointRect);

}

[mapView setVisibleMapRect:zoomRect animated:YES];

 


您還可以通過將第一行替換為以下內(nèi)容來更新它以包括userLocation引腳:


MKMapPoint annotationPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate);

MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);


查看完整回答
反對 回復(fù) 2019-10-04
?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

蘋果為IOS 7添加了新方法,以簡化生活。


[mapView showAnnotations:yourAnnotationArray animated:YES];

您可以輕松地從存儲在地圖視圖中的數(shù)組中提?。?/p>


yourAnnotationArray = mapView.annotations;

并快速調(diào)整相機!


mapView.camera.altitude *= 1.4;

除非用戶安裝了iOS 7+或OS X 10.9+,否則此功能將無效。在此處查看自定義動畫


查看完整回答
反對 回復(fù) 2019-10-04
  • 3 回答
  • 0 關(guān)注
  • 714 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號