2012-08-10 58 views
0
-(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區域。但是,我想知道爲什麼它首先關閉。

回答

0

我發現了問題所在:

我寫了這個代碼:

for (int i=100;i<10000;i=i*1.1) 
    { 
     distanceWereInputing = i; 
     self.theMapView.region = MKCoordinateRegionMakeWithDistance([cachedProperties singleton].mapCenterLocation.coordinate,distanceWereInputing, distanceWereInputing); 
     PD(distanceWereInputing); 
     PD(self.DistanceBetweenWestandEast); 
     PD(self.DistanceBetweenWestandEast/distanceWereInputing); 
    } 

這是結果:

2012-08-10 12:33:33.935 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(394)> [BNUtilitiesQuick MaxDistanceOnSearch]: 193.690170 
2012-08-10 12:33:33.935 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(396)> distanceFromEastAndWestShyouldBe: 464.856409 
2012-08-10 12:33:50.500 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 100.000000 
2012-08-10 12:33:51.740 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 95.171213 
2012-08-10 12:33:54.042 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 0.951712 
2012-08-10 12:34:02.613 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 110.000000 
2012-08-10 12:34:02.613 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.614 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.730386 
2012-08-10 12:34:02.614 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 121.000000 
2012-08-10 12:34:02.614 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.614 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.573078 
2012-08-10 12:34:02.615 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 133.000000 
2012-08-10 12:34:02.615 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.615 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.431146 
2012-08-10 12:34:02.616 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 146.000000 
2012-08-10 12:34:02.620 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.620 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.303715 
2012-08-10 12:34:02.621 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 160.000000 
2012-08-10 12:34:02.621 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.621 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.189640 
2012-08-10 12:34:02.622 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 176.000000 
2012-08-10 12:34:02.622 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.633 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.081491 
2012-08-10 12:34:02.635 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 193.000000 
2012-08-10 12:34:02.635 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 190.342426 
2012-08-10 12:34:02.635 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 0.986230 
2012-08-10 12:34:02.636 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 212.000000 
2012-08-10 12:34:02.636 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.636 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.795683 
2012-08-10 12:34:02.636 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 233.000000 
2012-08-10 12:34:02.667 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.667 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.633841 
2012-08-10 12:34:02.668 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 256.000000 
2012-08-10 12:34:02.668 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.668 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.487050 
2012-08-10 12:34:02.668 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 281.000000 
2012-08-10 12:34:02.669 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.669 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.354750 
2012-08-10 12:34:02.669 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 309.000000 
2012-08-10 12:34:02.670 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.670 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.231990 
2012-08-10 12:34:02.671 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 339.000000 
2012-08-10 12:34:02.671 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.685 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.122964 
2012-08-10 12:34:02.686 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 372.000000 
2012-08-10 12:34:02.686 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 380.684853 
2012-08-10 12:34:02.686 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.023346 
2012-08-10 12:34:02.687 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 409.000000 
2012-08-10 12:34:02.687 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.687 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.861540 
2012-08-10 12:34:02.687 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 449.000000 
2012-08-10 12:34:02.688 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.688 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.695701 
2012-08-10 12:34:02.688 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 493.000000 
2012-08-10 12:34:02.688 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.689 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.544360 
2012-08-10 12:34:02.689 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 542.000000 
2012-08-10 12:34:02.689 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.689 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.404741 
2012-08-10 12:34:02.690 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 596.000000 
2012-08-10 12:34:02.690 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.690 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.277466 
2012-08-10 12:34:02.691 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 655.000000 
2012-08-10 12:34:02.691 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.691 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.162396 
2012-08-10 12:34:02.692 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 720.000000 
2012-08-10 12:34:02.692 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 761.369705 
2012-08-10 12:34:02.692 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.057458 
2012-08-10 12:34:02.692 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 792.000000 
2012-08-10 12:34:02.693 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.693 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.922651 
2012-08-10 12:34:02.693 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 871.000000 
2012-08-10 12:34:02.693 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.694 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.748266 
2012-08-10 12:34:02.694 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 958.000000 
2012-08-10 12:34:02.694 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.694 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.589498 
2012-08-10 12:34:02.695 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1053.000000 
2012-08-10 12:34:02.695 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.695 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.446096 
2012-08-10 12:34:02.695 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1158.000000 
2012-08-10 12:34:02.703 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.703 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.314974 
2012-08-10 12:34:02.704 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1273.000000 
2012-08-10 12:34:02.704 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.704 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.196182 
2012-08-10 12:34:02.705 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1400.000000 
2012-08-10 12:34:02.705 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 1522.739410 
2012-08-10 12:34:02.705 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.087671 
2012-08-10 12:34:02.706 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1540.000000 
2012-08-10 12:34:02.706 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.706 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.977584 
2012-08-10 12:34:02.707 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1694.000000 
2012-08-10 12:34:02.707 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.707 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.797803 
2012-08-10 12:34:02.707 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 1863.000000 
2012-08-10 12:34:02.708 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.708 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.634718 
2012-08-10 12:34:02.708 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 2049.000000 
2012-08-10 12:34:02.708 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.709 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.486324 
2012-08-10 12:34:02.709 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 2253.000000 
2012-08-10 12:34:02.709 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.710 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.351744 
2012-08-10 12:34:02.710 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 2478.000000 
2012-08-10 12:34:02.710 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.710 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.229007 
2012-08-10 12:34:02.711 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 2725.000000 
2012-08-10 12:34:02.711 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.711 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.117607 
2012-08-10 12:34:02.712 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 2997.000000 
2012-08-10 12:34:02.712 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 3045.478821 
2012-08-10 12:34:02.712 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.016176 
2012-08-10 12:34:02.713 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 3296.000000 
2012-08-10 12:34:02.713 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.713 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.847985 
2012-08-10 12:34:02.714 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 3625.000000 
2012-08-10 12:34:02.714 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.714 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.680264 
2012-08-10 12:34:02.714 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 3987.000000 
2012-08-10 12:34:02.715 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.715 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.527704 
2012-08-10 12:34:02.715 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 4385.000000 
2012-08-10 12:34:02.715 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.716 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.389044 
2012-08-10 12:34:02.716 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 4823.000000 
2012-08-10 12:34:02.716 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.716 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.262898 
2012-08-10 12:34:02.717 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 5305.000000 
2012-08-10 12:34:02.717 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.717 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.148154 
2012-08-10 12:34:02.718 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 5835.000000 
2012-08-10 12:34:02.718 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 6090.957642 
2012-08-10 12:34:02.718 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.043866 
2012-08-10 12:34:02.719 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 6418.000000 
2012-08-10 12:34:02.719 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 12181.915283 
2012-08-10 12:34:02.719 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.898086 
2012-08-10 12:34:02.719 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 7059.000000 
2012-08-10 12:34:02.720 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 12181.915283 
2012-08-10 12:34:02.720 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.725728 
2012-08-10 12:34:02.720 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 7764.000000 
2012-08-10 12:34:02.720 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 12181.915283 
2012-08-10 12:34:02.721 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.569026 
2012-08-10 12:34:02.721 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 8540.000000 
2012-08-10 12:34:02.721 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 12181.915283 
2012-08-10 12:34:02.721 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.426454 
2012-08-10 12:34:02.722 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(403)> distanceWereInputing: 9394.000000 
2012-08-10 12:34:02.722 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(404)> self.DistanceBetweenWestandEast: 12181.915283 
2012-08-10 12:34:02.722 BadgerNew[16754:17003] <0x88b79b0 GoogleMap.m:(405)> self.DistanceBetweenWestandEast/distanceWereInputing: 1.296776 

因此,它看起來像谷歌縮放級別只能拿一定的價值。這就是爲什麼我們輸入的數據與實際的東西距離之間的比率從1.7到0.95不等。

那麼我只拿平均1.3,並使用該變化時的MKMapView大小。

+0

你是正確的,該地圖將捕捉到預定義的縮放級別,它使瓷磚看起來要好很多。但爲什麼你需要一個比例?您擁有最大搜索距離的功能,Apple提供了一個設置適合座標區域的區域的功能。剛切斷整個代碼下降到這樣的:self.theMapView.region = MKCoordinateRegionMakeWithDistance([cachedProperties單] .mapCenterLocation.coordinate,[BNUtilitiesQuick MaxDistanceOnSearch],[BNUtilitiesQuick MaxDistanceOnSearch]); – Craig 2012-08-11 21:21:10

+0

這是另一個令人困惑的部分。 MKMapview的高度和寬度不同。所以如果我給出相同的數據的寬度和高度哪一個將匹配插入的數字?寬度或高度?或者哪個更「少」? – 2012-08-12 12:14:39

+1

如果你這樣做的話,MKMapview將確保你的座標區域是可見的(如果需要的話,在任何一邊加額外)[mapView setRegion:[mapView regionThatFits:region] animated:YES]; – Craig 2012-08-12 15:08:05

1

經線之間的距離隨緯度而變化。在赤道上,一度經度爲〜111km,但向北或向南75度,一度經度爲〜29km。您對東西方距離的計算假定視圖位於赤道上。嘗試使用CLLocation的distanceFromLocation來考慮緯度。 你需要兩點。中央longitudeDelta/2和中心+ longitudeDelta/2

+0

嗯...有趣。我沒有考慮到這一點。儘管我在赤道。 – 2012-08-11 15:35:04

+0

+1。我不認爲這是真正的問題,但我認爲你讓我看到我非常想念的重要一點。 – 2012-08-11 15:38:53