长按地图以打开警告对话框,在Google地图中创建标记

时间:2014-09-02 06:35:05

标签: android google-maps marker

我是android新手。我想要这个功能,        在谷歌地图活动中,当我长时间点击地图时,它会显示一个警告对话框,用于在地图上创建标记,警报对话框有两个按钮,一个用于创建标记,另一个用于取消。任何人都可以帮助我。如何使用警告对话框创建标记。

2 个答案:

答案 0 :(得分:2)

这很简单,真的。使用onMapLongClickListener收听长按并显示对话框,如果按下正按钮创建标记。这是一个例子:

public class MainActivity extends FragmentActivity implements 
        DialogInterface.OnClickListener {

    private GoogleMap mMap;
    private LatLng mClickPos;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // Init activity and map

        mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
            @Override
            public void onMapLongClick(LatLng latLng) {
                mClickPos = latLng;
                new AlertDialog.Builder(MainActivity.this)
                        .setPositiveButton("Create", MainActivity.this)
                        .setNegativeButton("Cancel", null)
                        .show();
            }
        });
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        mMap.addMarker(new MarkerOptions().position(mClickPos));
    }

}

答案 1 :(得分:1)

您可以将地图上的点击和长按事件处理为shown in the documentation

  

地图点击/长按活动

     

如果您想响应用户点击地图上的某个点,您可以使用OnMapClickListener,您可以通过调用GoogleMap.setOnMapClickListener(OnMapClickListener)在地图上设置该地图。当用户在地图上的某个位置单击(轻击)时,您将收到一个onMapClick(LatLng)事件,该事件指示用户单击的地图上的位置。请注意,如果您需要屏幕上的相应位置(以像素为单位),您可以从地图获取投影,它允许您在纬度/经度坐标和屏幕像素坐标之间进行转换。

     

您还可以使用OnMapLongClickListener监听长按事件,您可以通过调用GoogleMap.setOnMapLongClickListener(OnMapLongClickListener)在地图上设置。此侦听器的行为与单击侦听器类似,并将通过onMapLongClick(LatLng)回调通知长按事件。

覆盖onMapClick(LatLng)并使用您收到的LatLng创建标记。