2015-09-24 96 views
2

我在iOS上使用谷歌地圖。我有一組座標。其中我想將其中一個座標設置爲地圖的中心,而不考慮縮放級別。我可以同時使用GMSCameraUpdate fitBounds來適合框架中的所有座標。但是,我怎樣才能將一個特定的座標始終設置爲中心,並且還可以適合框架中的其餘座標。設置地圖中心並縮放以適合所有座標

我已經試過是創造GMSCoordinateBounds,包括所有的座標,並設定合適的界限

[myMapview animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds withPadding:20.0f]]; 

但我要的是地圖視圖應該以這樣的方式,這種特定的座標應該是放大精確的中心,而所有其他座標也包含在框架中。

回答

1

你需要的所有地圖點存儲在GMSCoordinateBounds使用這樣

GMSCoordinateBounds* bounds = [[GMSCoordinateBounds alloc] init ]; 
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(26.00, 75.00); 
bounds = [bounds includingCoordinate:position]; 

商店使用相同類型的代碼的所有位置。將所有GMSCoordinateBounds位置使用地圖

[myMapview animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds]]; 
//myMapview = this is object of your google map. 
+0

這就是我所做的。但是我希望一個特定的座標始終處於中心位置,同時在框架中擬合其餘的座標。 –

+0

您需要存儲您的地圖的所有座標以便在此處顯示 –

0

所有你需要的是建立正確的GMSCoordinatedBounds對象。 假設您需要使用地圖相機和center點數來安裝點數。

首先你需要找到center中最遠的點。然後計算一個與你找到的相反的額外點far'。它看起來像這樣

(遠)---------(中心)---------(遠「)

這樣做只是使用簡單的+/-緯度和經度farcenter座標。

Farfar'將確切的兩點bounds需要。

0

你能看到下面的代碼。我希望它對你有所幫助

打算設置地圖的邊界以專注於所有標記。 enter image description here

'GMSMapView'類用於有一個方法'標記',它返回所有標記,但現在不推薦使用。因此,你將不得不跟蹤添加到地圖上的標記。

假設你有以下幾點:

GMSMapView *mapView; 
NSMutableArray *markers; 

,所有的標記添加到NSMutableArray的「標誌」。

- (void)ShowAllMarkers 
{ 
CLLocationCoordinate2D firstLocation = ((GMSMarker *)markers.firstObject).position; 
GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:firstLocation coordinate:firstLocation]; 

for (GMSMarker *marker in markers) { 
    bounds = [bounds includingCoordinate:marker.position]; 
} 

[mapView animateWithCameraUpdate:[GMSCameraUpdate fitBounds:bounds withPadding:50.0f]]; 
} 

enter image description here

相關問題