【发布时间】:2018-02-11 23:27:12
【问题描述】:
如何将标记移动到当前位置
我已经熟悉了两个固定的地理位置
这是我使用的:
private void autoAnimateMarker() {
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mMap.getUiSettings().setZoomControlsEnabled(true);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
mMap.setMyLocationEnabled(true);
LatLng fromLocation = new LatLng(-33.904438, 151.249852);
LatLng toLocation = new LatLng(-33.905823, 151.252422);
Marker marker = mMap.addMarker(new MarkerOptions().position(fromLocation));
MarkerAnimation.animateMarkerToICS(marker, toLocation, new LatLngInterpolator.Spherical());
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(fromLocation, 17F));
}
然后在onMapReady(...)内调用它
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
autoAnimateMarker();
}
显示当前位置
我已经经历过了-https://stackoverflow.com/a/34582595/3585072
目前 onLocationChanged(Location location) 方法看起来像这样,我需要放在这里,根据位置变化动态移动我的标记:
@Override
public void onLocationChanged(Location location)
{
Toast.makeText(this, "Location Changed " + location.getLatitude()
+ location.getLongitude(), Toast.LENGTH_LONG).show();
mLastLocation = location;
if (mCurrLocationMarker != null) {
mCurrLocationMarker.remove();
}
//Place current location marker
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Current Position");
markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
mCurrLocationMarker = mGoogleMap.addMarker(markerOptions);
//move map camera
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng,11));
}
【问题讨论】:
-
“仅当我移动时”是什么意思,是指光标移动时,还是单击其他地理位置时?
-
@KingReload“仅当我移动时”这意味着根据我当前的位置它应该移动,就像我正在驾驶汽车并从位置 A 开始,目标是到达位置 B ......所以我希望这个飞机标记应该和我一起移动......现在清楚了吗?
-
定期收听您当前的位置,并在您的位置更改时移动标记。我不明白你到底想做什么。
-
@DorukhanArslan 实际上你明白我的意思,我只是想知道如何动态移动标记,只要位置发生变化?仍然从位置 A 静态移动到位置 B。
-
请检查我在上面发布的 onLocationChanged(Location location) 方法的代码
标签: android google-maps google-maps-markers google-maps-android-api-2