当前位置: 首页 > 知识库问答 >
问题:

Maps V2 myLocation蓝点回调

赵经国
2023-03-14

我希望能够单击地图上显示的蓝点(我的位置)。无论如何都可以从单击中获得回调吗?

谢谢,Martijn

共有1个答案

薛彭薄
2023-03-14

一种可能的解决方法是在My Location点的顶部绘制标记(带有类似的图标),以便接收相应的onmarkerclick()回调。这还需要在每次发生位置更新事件时删除标记并将其添加到新位置,您可以通过实现onMyLocationChangeListener来侦听该事件。

Edit:onMyLocationChangeListener接口现在不推荐使用,应该使用新的LocationClient和相关的LocationListener

因此,相关代码可能如下所示(我没有实际测试过):

public class DemoMapFragment extends SupportMapFragment implements OnMyLocationChangeListener, OnMarkerClickListener { 

    // Note that 'mMap' may be null if the Google Play services APK is not available. 
    private GoogleMap mMap; 
    private Marker myLocationMarker;
    private static BitmapDescriptor markerIconBitmapDescriptor;
    /* ... */

    @Override 
    public void onResume() { 
        super.onResume(); 
        setUpMapIfNeeded(); // Get a reference to the map      
        mMap.setMyLocationEnabled(true); // Enable the my-location layer 
        mMap.setOnMyLocationChangeListener(this); 
        mMap.setOnMarkerClickListener(this);
    }

    private void setUpMapIfNeeded() { 
        // Do a null check to confirm that we have not already instantiated the map. 
        if (mMap == null) { 
            mMap = getMap(); 
            // Check if we were successful in obtaining the map. 
            if (mMap != null) { 
                // The Map is verified. It is now safe to manipulate the map:

                // Load custom marker icon
                markerIconBitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.my_location_dot_icon); 

                // When the map is first loaded we need to add our marker on top of My Location dot
                myLocationMarker = mMap.addMarker(new MarkerOptions() 
                        .position(new LatLng(mMap.getMyLocation().getLatitude(),mMap.getMyLocation().getLongitude())) 
                        .icon(markerIconBitmapDescriptor)); 

                // Set default zoom 
                mMap.moveCamera(CameraUpdateFactory.zoomTo(15f)); 
            } 
        } 
    }   

    @Override
    public void onMyLocationChange(Location location) {
        // Remove the old marker object
        myLocationMarker.remove(); 

        // Add a new marker object at the new (My Location dot) location
        myLocationMarker = mMap.addMarker(new MarkerOptions() 
                .position(new LatLng(location().getLatitude(),location().getLongitude())) 
                .icon(markerIconBitmapDescriptor)); 
    }

    @Override
    public boolean onMarkerClick(Marker marker) {
        if (marker.equals(myLocationMarker)) {
            /* My Location dot callback ... */
        }
    }
}
 类似资料:
  • 光环板可以连接 mbuild 的 8×16 蓝色LED点阵 模块进行编程。 1. 8×16蓝色LED点阵(1)显示图案()(1)秒 在指定蓝色LED点阵显示指定图案,并持续指定时间。 示例 按下光环板的按钮,在蓝色LED点阵1显示指定图案,持续1秒。 2. 8×16蓝色LED点阵(1)显示图案() 在指定蓝色LED点阵显示指定图案。 示例 按下光环板的按钮,在蓝色LED点阵1显示指定图案。 3.

  • LED点阵可以单独设置点阵上每一个点的亮灭,从而实现对动画、表情、文字、数字的表现。 生活实例 机场的航班班次屏幕就是一个LED点阵屏 参数 尺寸:64×44mm 工作电流:150mA

  • LED点阵可以单独设置点阵上每一个点的亮灭,从而实现对动画、表情、文字、数字的表现。 生活实例 机场的航班班次屏幕就是一个LED点阵屏 参数 尺寸:64×44mm 工作电流:150mA

  • 我在我的应用程序中实现了一个谷歌地图片段,用户可以通过点击右上角的“指南针”按钮看到他们当前的位置。

  • 问题内容: 我正在编写一个Android BLE应用程序,并且试图获得某个特性的权限。我已经设法通过character.getProperties()获取特征属性,并且它返回非零值,但是,即使我确定特征具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040,当我使用getPermission()方法时,它也会返回0。 )。 这是一个代码片段 难道我做错了什么?是否

  • 问题内容: 有谁知道如何更改Bootstrap的?单击字段时出现的蓝色发光? 问题答案: 最后,我在bootstrap.css中更改了以下css条目