2013-02-07 22 views
2

我使用的MKMapView獲得更細粒度的跨度,我初始化這樣的:如何才能在我的MKMapView

homeLocation.latitude = 42.033126; 
homeLocation.longitude = -70.168621; 

[self.mapView setCenterCoordinate:homeLocation animated:NO]; 

MKCoordinateRegion viewRegion; 

viewRegion.center = homeLocation; 
viewRegion.span = MKCoordinateSpanMake(1.7, 1.7); 

[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO]; 

,這裏是我的應用程序

enter image description here

這很好,除了我的應用程序,我需要讓它縮小一點點。但是,當我試試這個:

viewRegion.span = MKCoordinateSpanMake(1.8, 1.8); // use span of 1.8, not 1.7 

我得到這個:

enter image description here

它被縮小出路。如果我查看MKMapView的區域,緯度Delta3 3.54981和經度Delta3.51562。

如何將我的跨度設置爲1.7和3.5之間的值?我很想爲這個特定的應用程序打2.25。

注意:mapview縮放只需放大到我想要的任何跨度。

回答

0

你在設備上試過了嗎?有時我對設備上的縮放級別比在模擬器上有更多的控制權。

+0

哦,是的,對不起,我在我的文章中更清晰。當你捏放大或縮小,它工作正常。我無法將mapview初始化爲我想要的範圍。 –

+0

是的。我不是在談論縮放而是關於設置區域。我有一個動畫,我每秒多次設置區域 - 自定義放大,並有輕微的曲線 - 在模擬器上,它每50次更新只更改一次縮放,但在設備上它總是更新縮放。 –

+0

哦!我明白你的意思了,是的,明天我會檢查一下。謝謝你的提示! –

1

MKCoordinateSpanMake使用度數,1度約爲69英里。如果您想要更精細的設置,請改用MKCoordinateRegionMakeWithDistance。

CLLocationCoordinate2D homeLocation; 
homeLocation.latitude = 42.033126; 
homeLocation.longitude = -70.168621; 

[self.mapView setCenterCoordinate:homeLocation animated:NO]; 

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(homeLocation, 200000, 200000); 
// 200000 meter is approximately 1.8 degree 
[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO]; 
+0

地圖區域仍然量化地調整大小,不太順利。 –