我想要返回用戶在Google Maps Android應用程序中選擇的位置,但似乎無法找到有關如何完成此任務的信息。從Google地圖活動中獲取所選位置
我創建了一個意圖來打開GMaps活動,但用戶無法在地圖上選擇一個點,也不會在活動關閉時返回一個指向我的應用程序的點。
我使用的是startActiviyForResult
,因爲我期待的是活動的結果。
我想要返回用戶在Google Maps Android應用程序中選擇的位置,但似乎無法找到有關如何完成此任務的信息。從Google地圖活動中獲取所選位置
我創建了一個意圖來打開GMaps活動,但用戶無法在地圖上選擇一個點,也不會在活動關閉時返回一個指向我的應用程序的點。
我使用的是startActiviyForResult
,因爲我期待的是活動的結果。
使用Google API。您只需要使用MapView創建自己的MapActivity。 Here is great tutorial on Google API包括手指輕按的接收位置。希望這會有所幫助。
沒有這種可能性 - 您只能打開指定位置http://developer.android.com/guide/appendix/g-app-intents.html的地圖。
相反,您應該使用Maps External Library使用MapView創建自己的活動。
感嘆!我希望Maps活動支持這個簡單的用例。使用外部地圖庫需要在應用程序中使用Internet許可,這對我的應用程序來說是過度的。 – HRJ 2011-04-27 05:55:22
hii你需要關注這個鏈接。只要通過它,希望你會得到你的解決方案。 http://mobiforge.com/developing/story/using-google-maps-android
對於地圖API V2,您可以使用onMapClickListener。
map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
Toast.makeText(getApplicationContext(), point.toString(), Toast.LENGTH_SHORT).show();
}
});
詳情:https://developers.google.com/maps/documentation/android/interactivity
謝謝,我正在尋找這 – 2015-10-23 16:56:47
我猜你正在尋找標記拖動。
mMap.setMyLocationEnabled(true);
mLocation = mMap.getMyLocation();
mMap.addMarker(new MarkerOptions().position(new LatLng(mLocation.getLatitude(), mLocation.getLongitude())).draggable(true));
mMap.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
LatLng newLocation = marker.getPosition();
mLocation.setLatitude(newLocation.latitude);
mLocation.setLongitude(newLocation.longitude);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLocation.getLatitude(), mLocation.getLongitude()), 15.0f));
}
@Override
public void onMarkerDragStart(Marker marker) {}
});
然後返回您的新location.i.e mLocation。
您可以簡單地使用PlacePicker而不是實現自己的MapActivity。不過,您需要在項目中添加Google Play服務庫參考。
只是startActivityForResult與PlacePicker.IntentBuilder
提供int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
Context context = getApplicationContext();
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST);
然後意圖接收結果在onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PLACE_PICKER_REQUEST) {
if (resultCode == RESULT_OK) {
Place place = PlacePicker.getPlace(data, this);
String toastMsg = String.format("Place: %s", place.getName());
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
}
}
}
請參考https://developers.google.com/places/android/placepicker進一步的細節。
有點太遲迴答你的問題,但希望這可以幫助有相同需求的人。
真棒我一直在尋找這個:)我會嘗試它 – hadi 2015-07-01 11:46:31
不幸的是,PlacePicker活動沒有允許用戶搜索 – satur9nine 2015-08-16 05:21:11
這是非常整潔。 A + – pandalion98 2016-11-04 16:26:31
你可以用Mapbox Android SDK輕鬆做到這一點。他們有一個很好的教程:
所需的主要組件包括:
已過期請更新! – Killer 2016-10-13 22:10:52