Google 地图:当前位置标记(地图的定期更新)
Posted
技术标签:
【中文标题】Google 地图:当前位置标记(地图的定期更新)【英文标题】:Google Maps: Current Location Marker (Period updates for GMaps) 【发布时间】:2016-11-03 23:31:33 【问题描述】:因此,我已经能够通过开发者 android 页面定期更新我当前的位置,从而让您的应用了解位置。现在,每当我的位置发生变化时,我都能获得该位置的纬度和经度。但是,我该用 Google 地图来实现这个功能吗?
下面这一行在我的地图上实现了一个按钮,用于查找我的当前位置并在其上放置一个蓝点/标记(不接收定期更新)
mMap.setMyLocationEnabled(true);
我应该在我的onLocationChanged()
事件中添加什么内容才能使蓝点更新为新 经纬度?
【问题讨论】:
【参考方案1】:mMap.setMyLocationEnabled(true);
这是当前位置的蓝色标记的简单技巧,并且为我做了这个技巧。
【讨论】:
【参考方案2】:蓝点和精确圆圈由地图自动管理,您无法对其进行更新或更改其符号系统。事实上,它是使用它自己的 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);
【讨论】:
所以上面的代码允许更新蓝点,而默认情况下,蓝点不更新?只获取最后一个已知位置?以上是关于Google 地图:当前位置标记(地图的定期更新)的主要内容,如果未能解决你的问题,请参考以下文章
iOS Google 地图 SDK - 可以将当前位置蓝点标记为红点
在 Android 中步行/驾驶时更新位置标记并在 Google 地图上绘制路径
在 AngularJS 应用程序中单击 Google 地图中的标记不会更新显示的数据