MKMapview中的设置区域已经关闭了1.6倍
-(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区域。但是,我想知道为什么它首先关闭。
我发现了问题所在:
我写了这个代码:
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大小。
经线之间的距离随纬度而变化。在赤道上,一度经度为〜111km,但向北或向南75度,一度经度为〜29km。您对东西方距离的计算假定视图位于赤道上。尝试使用CLLocation的distanceFromLocation来考虑纬度。 你需要两点。*longitudeDelta/2和中心+ longitudeDelta/2
嗯...有趣。我没有考虑到这一点。尽管我在赤道。 – 2012-08-11 15:35:04
+1。我不认为这是真正的问题,但我认为你让我看到我非常想念的重要一点。 – 2012-08-11 15:38:53
你是正确的,该地图将捕捉到预定义的缩放级别,它使瓷砖看起来要好很多。但为什么你需要一个比例?您拥有最大搜索距离的功能,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