java - 谷歌地图 : Current Location Marker (Period updates for GMaps)

标签 java android google-maps android-studio

因此,我已经能够通过开发者 android 页面定期更新我的当前位置,让您的应用知道位置。现在,每当我的位置发生变化时,我都能获得该位置的纬度和经度。但是,谁可以使用 Google map 实现此操作?

下面这一行在我的 map 上实现了一个按钮,可以找到我的当前位置并在上面放置一个蓝点/标记(不接收定期更新)

mMap.setMyLocationEnabled(true);

我应该在我的 onLocationChanged() 事件中添加什么,以便用经纬度更新蓝点?

最佳答案

蓝点和精密圆由 map 自动管理,您无法更新或更改其符号系统。事实上,它使用自己的 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);
}

关于java - 谷歌地图 : Current Location Marker (Period updates for GMaps),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38147350/

相关文章:

javascript - 在javascript中从数组中获取特定元素

java - 如何获得我的程序的正确输出(字符串格式)?

java - 返回基于多个变量的多态类

ios - 如何获取特定路线的转弯指示?

android - 如何在 Fire Phone 上启用开发者选项和 ADB?

java - 应用程序中有大量数据

iphone - iPhone/Android 浏览器上的 Google Maps API InfoWindow 高度不正确

java - 如何在 Java 8 中将 LocalDateTime 转换为 Date

java - 使用 JUnit 的内部类中的测试用例

android - MyAppHiltApp : java. lang.ClassNotFoundException:在路径上找不到类 "HiltApp":DexPathList