繁体   English   中英

Google 地图:当前位置标记(GMap 的期间更新)

[英]Google Maps: Current Location Marker (Period updates for GMaps)

所以我已经能够通过开发者 android 页面定期更新我的当前位置,让您的应用程序位置感知。 现在,每当我的位置发生变化时,我都能获得该位置的纬度和经度。 但是,我该由谁使用 Google 地图来实现这一点?

下面这一行在我的地图上实现了一个按钮,用于查找我当前的位置并在其上放置一个蓝点/标记(不接收定期更新)

mMap.setMyLocationEnabled(true);

我应该在onLocationChanged()事件中放入什么,以便使用新的onLocationChanged()更新蓝点?

蓝点和精密圆由地图自动管理,您无法更新或更改其符号系统。 事实上,它是使用它自己的 LocationProvider 自动管理的,因此它可以获得可用的最佳位置分辨率(您不需要编写代码来更新它,只需使用mMap.setMyLocationEnabled(true);启用它)。

如果你想模拟它的行为,你可以写这样的东西(你应该禁用我的位置层做mMap.setMyLocationEnabled(false); ):

private BitmapDescriptor markerDescriptor;
private int accuracyStrokeColor = Color.argb(255, 130, 182, 228);
private int accuracyFillColor = Color.argb(100, 130, 182, 228);

private Marker positionMarker;
private Circle accuracyCircle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    markerDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.yourmarkericon);
}

@Override
public void onLocationChanged(Location location) {
    double latitude = location.getLatitude();
    double longitude = location.getLongitude();
    float accuracy = location.getAccuracy();

    if (positionMarker != null) {
        positionMarker.remove();
    }
    final MarkerOptions positionMarkerOptions = new MarkerOptions()
            .position(new LatLng(latitude, longitude))
            .icon(markerDescriptor)
            .anchor(0.5f, 0.5f);
    positionMarker = mMap.addMarker(positionMarkerOptions);

    if (accuracyCircle != null) {
        accuracyCircle.remove();
    }
    final CircleOptions accuracyCircleOptions = new CircleOptions()
            .center(new LatLng(latitude, longitude))
            .radius(accuracy)
            .fillColor(accuracyFillColor)
            .strokeColor(accuracyStrokeColor)
            .strokeWidth(2.0f);
    accuracyCircle = mMap.addCircle(accuracyCircleOptions);
}
mMap.setMyLocationEnabled(true);

这是当前位置蓝色标记的简单技巧,对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM