如何以编程方式在GoogleMaps上选择标记

时间:2015-03-31 13:49:07

标签: android google-maps google-maps-markers google-maps-android-api-2

正确的是,当我按下按钮时,它会加载GoogleMaps,制作一个标记并显示一个自定义信息窗口。

MarkerOptions markerOptions = new MarkerOptions();
//etc.
mMap.addMarker(markerOptions).showInfoWindow();

我希望标记处于被点击状态而用户实际上没有自己点击它,程序应该为他做  我想要的原因是,当选择标记时(现在通过手动用户点击),它还会显示两个图标。一个是做另一个路线直接去那些coords的googlemaps。

如何实现这一目标,除了显示infoWindow外,还会选择标记?

4 个答案:

答案 0 :(得分:0)

您应该在地图或地图片段上实施GoogleMap.OnMapClickListener

内部点击监听器,在地图上点击的位置添加新标记

通过这种方式,您可以解决问题

答案 1 :(得分:0)

    GMAP.addMarker(new MarkerOptions()
            .position(new LatLng(myMarker.latitude, myMarker.longitude))
            .title("My Marker"));
    GMAP.setOnMarkerClickListener(new OnMarkerClickListener() {
        public boolean onMarkerClick(Marker marker) {
            Log.d("TAG", "Marker was clicked");
            return true;
        }
    });

答案 2 :(得分:0)

您真正想要的是一个悬停信息窗口,除了在选择标记时显示的悬停信息窗口之外,该窗口始终存在。对?标记为“ double selected”是获得两个悬停窗口的方式。只有,您无法双击选择标记。如果选中它,则再次选择它不会执行任何操作。

这是因为所有选择标记的行为都是显示一个信息窗口,根据“信息窗口文档”,这是不可能的。 Only one info window is displayed at a time

我无法告诉您如何做自己想做的事情(因为它无法完成)。但是,这是您可以执行的操作之一。实现custom info window interface,其中包含两个子视图,一个始终可见,另一个在用户单击标记之前一直“消失”。

以编程方式显示信息窗口(就像您已经使用.showInfoWindow()一样),然后使用mMap.setOnMarkerClickListener()设置一个函数,该函数向您的自定义infoWindow发出信号,以将第二个视图从“消失”切换为“可见”。

祝你好运,编码愉快!

答案 3 :(得分:0)

您可以像这样以编程方式“点击”。有点小技巧,但 Android 就是这样。

    MarkerOptions markerOptions = new MarkerOptions();
    Marker marker = googleMap.addMarker(markerOptions);

    markerClickListener = new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(@NonNull Marker marker) {
            
            return false;
        }
    };
    
    googleMap.setOnMarkerClickListener(markerClickListener);

    markerClickListener.onMarkerClick(marker);