setLocationEnabled是一個屬性,它在地圖頂部顯示一個按鈕,使地圖轉到當前位置。在另一個按鈕中調用setLocationEnabled
但我想「隱藏」此按鈕並調用另一個自定義按鈕上的方法。有沒有辦法?我不想創建一個大代碼去當前位置,但速度並不快。我只想與setLocationEnabled(true)的功能相同的按鈕。
我該怎麼做?
setLocationEnabled是一個屬性,它在地圖頂部顯示一個按鈕,使地圖轉到當前位置。在另一個按鈕中調用setLocationEnabled
但我想「隱藏」此按鈕並調用另一個自定義按鈕上的方法。有沒有辦法?我不想創建一個大代碼去當前位置,但速度並不快。我只想與setLocationEnabled(true)的功能相同的按鈕。
我該怎麼做?
我已經經歷了類似的問題,我發現了一個非常詳細的解決方案,從這裏Google map for android my location custom button
玩得開心!
正如你可能知道,你可以隱藏用下面的當前位置按鈕:
UiSettings.setMyLocationButtonEnabled(false);
現在,如果你想手動執行此任務,你必須做你自己的一些工作。首先,您需要獲取用戶的當前位置。這可以通過重寫LocationListener實現的onLocationChanged
函數來獲取(並更新)。如果你不清楚如何做到這一點,請檢查描述它的documentation。 This也可能證明有用!
其次,您需要通過設置地圖的相機來查看用戶的位置,並(可能)在該位置設置一個標記。下面是我在描述如何做到這一點最近用過的一個使用的功能:
public void moveToLocation(Location input) {
Double lat = (double) (input.getLatitude());
Double lon = (double) (input.getLongitude());
final LatLng location = new LatLng(lat, lon);
setLocMarker(location);
mainMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 16));
//if you want the camera to have an "animated" effect, you can perform the following
//mainMap.animateCamera(CameraUpdateFactory.zoomTo(16), 4000, null);
}
有關相機效果和動畫的更多信息,請參見本documentation。