-(void) setTheMapViewRegionBasedonCurrentAnchorandDistance
{
//PD([BNUtilitiesQuick MaxDistanceOnSearch]);
//self.theMapView.centerCoordinate = [cachedProperties singleton].currentAnchor.coordinate;
//self.theMapView.region.span.longitudeDelta=[BNUtilitiesQuick MaxDistanceOnSearch]*safetyMarginForMap;
double ratio = self.theMapView.frame.size.height/self.theMapView.frame.size.width;
//double ratio = self.theMapView.visibleMapRect.size.height/self.theMapView.visibleMapRect.size.width;
PD([BNUtilitiesQuick MaxDistanceOnSearch]);
double distanceFromEastAndWestShyouldBe = [BNUtilitiesQuick MaxDistanceOnSearch]*ratioBetweenEastWestToDistanceFilter;
PD(distanceFromEastAndWestShyouldBe);
self.theMapView.region = MKCoordinateRegionMakeWithDistance([cachedProperties singleton].mapCenterLocation.coordinate,distanceFromEastAndWestShyouldBe, distanceFromEastAndWestShyouldBe);
PD(self.DistanceBetweenWestandEast);
PD(ratio);
}
查看該代碼。我將MKMapview區域設置爲distanceFromEastAndWestShyouldBe的數量。輸出是:MKMapview中的設置區域已經關閉了1.6倍
2012-08-10 11:30:13.789 BadgerNew[15438:17003] <0x874d0b0 GoogleMap.m:(394)> [BNUtilitiesQuick MaxDistanceOnSearch]: 193.690170
2012-08-10 11:30:13.789 BadgerNew[15438:17003] <0x874d0b0 GoogleMap.m:(396)> distanceFromEastAndWestShyouldBe: 464.856409
2012-08-10 11:30:13.790 BadgerNew[15438:17003] <0x874d0b0 GoogleMap.m:(398)> self.DistanceBetweenWestandEast: 761.369705
2012-08-10 11:30:21.329 BadgerNew[15438:17003] <0x874d0b0 GoogleMap.m:(399)> ratio: 1.437500
基本上我設置地圖有464米寬度和地圖寬度是761米,而不是。
MKMapview的高度和寬度之比爲1.43。這並不重要,因爲我在經緯度上使用了較小的數字。
計算東部之間和西部中的MKMapView實際差異的代碼是:
-(double)DistanceBetweenWestandEast
{
CLLocationDegrees longitudeDelta=self.theMapView.region.span.longitudeDelta;
double distanceeastwest = longitudeDelta * MetersIn1DegreeofEarth;
return distanceeastwest;
}
與
#define MetersIn1DegreeofEarth 110882.5
定義其他
某處的解決辦法是簡單地由1.6之前分改變mapview區域。但是,我想知道爲什麼它首先關閉。
你是正確的,該地圖將捕捉到預定義的縮放級別,它使瓷磚看起來要好很多。但爲什麼你需要一個比例?您擁有最大搜索距離的功能,Apple提供了一個設置適合座標區域的區域的功能。剛切斷整個代碼下降到這樣的:self.theMapView.region = MKCoordinateRegionMakeWithDistance([cachedProperties單] .mapCenterLocation.coordinate,[BNUtilitiesQuick MaxDistanceOnSearch],[BNUtilitiesQuick MaxDistanceOnSearch]); – Craig 2012-08-11 21:21:10
這是另一個令人困惑的部分。 MKMapview的高度和寬度不同。所以如果我給出相同的數據的寬度和高度哪一個將匹配插入的數字?寬度或高度?或者哪個更「少」? – 2012-08-12 12:14:39
如果你這樣做的話,MKMapview將確保你的座標區域是可見的(如果需要的話,在任何一邊加額外)[mapView setRegion:[mapView regionThatFits:region] animated:YES]; – Craig 2012-08-12 15:08:05