从Google地图活动中获取所选位置

fol*_*ira 27 android google-maps

我正在尝试返回用户在Google Maps Android应用程序中选择的位置,但我似乎无法找到有关如何完成此任务的信息.

我创建了一个Intent来打开GMaps Activity,但是用户无法在地图上选择一个点,也不会在关闭时将Activity返回给我的应用程序.

我正在使用startActiviyForResult,因为我期待从活动回来的结果.

Sud*_*pta 45

您可以简单地使用PlacePicker而不是实现自己的MapActivity.您需要在项目中添加Google Play服务库参考.

只需使用PlacePicker.IntentBuilder提供的意图startActivityForResult即可

int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

Context context = getApplicationContext();
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST);
Run Code Online (Sandbox Code Playgroud)

然后在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();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅https://developers.google.com/places/android/placepicker.

回答你的问题有点太晚,但希望这可以帮助有相同要求的人.

  • 请注意,PlacePicker将于2019年7月29日起弃用。在此处查看更多信息https://developers.google.com/places/android-sdk/placepicker (2认同)

pon*_*kin 15

使用Google API.您只需要使用MapView创建自己的MapActivity. 这是关于Google API的精彩教程,包括手指点击接收位置.希望这会有所帮助.


Far*_*tas 8

对于maps API V2,您可以使用onMapClickListener.

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

        @Override
        public void onMapClick(LatLng point) {
            Toast.makeText(getApplicationContext(), point.toString(), Toast.LENGTH_SHORT).show();
        }
});
Run Code Online (Sandbox Code Playgroud)

有关详细信息:https://developers.google.com/maps/documentation/android/interactivity


小智 5

没有这种可能性 - 您只能打开指定位置的地图http://developer.android.com/guide/appendix/g-app-intents.html.

相反,您应该使用Maps External Library使用MapView创建自己的Activity .