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

因此,我已经能够通过开发人员的android页面获取我当前位置的定期更新,从而使您的应用知道位置。现在,只要我的位置发生变化,我就可以获取该位置的纬度和经度。但是,谁可以在Google

Maps中实现呢?

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

mMap.setMyLocationEnabled(true);

我应该在onLocationChanged()活动中添加些什么,以便用 经纬度和经度更新蓝点?

回答:

蓝点和精确度圆由地图自动管理,您无法对其进行更新或更改其符号系统。实际上,它是使用自己的LocationProvider自动管理的,因此可以获得最佳的位置解析度(您无需编写代码即可对其进行更新,只需使用即可启用它mMap.setMyLocationEnabled(true);)。

如果要模拟它的行为,可以编写如下代码(您应该禁用我的location层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地图:当前位置标记(GMaps的定期更新) 的全部内容, 来源链接: utcz.com/qa/398522.html

回到顶部