我在地图上有一个标记,需要更改标记的位置.
这是我的代码:
public voID onLocationChanged(Location location) { map.clear(); LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); if (Home_Activity.this.markerob != null) { Home_Activity.this.markerob.remove(); markerob.setposition(latLng); } latitude=location.getLatitude(); longitude=location.getLongitude(); CameraUpdate cameraUpdate =CameraUpdateFactory.newCameraposition(new Cameraposition.Builder().target(new LatLng(location.getLatitude(), location.getLongitude())).zoom(18.0f).build()); MarkerOptions options = new MarkerOptions().position(latLng); //options.Title( getAddressFromLatLng( latLng ) ); options.icon(BitmapDescriptorFactory.fromBitmap(Bitmap.createScaledBitmap( BitmapFactory.decodeResource(getResources(), spmain.getavatarimage()), 90, 90, false))); //map.addMarker(new MarkerOptions().position(latLng)); Toast.makeText(getApplicationContext(), "lat="+latLng,Toast.LENGTH_SHORT).show(); options.position(latLng); map.getUiSettings().setRotateGesturesEnabled(true); map.animateCamera(cameraUpdate); map.moveCamera(cameraUpdate); map.addMarker(options); //locationManager.removeUpdates(this);}
我添加了onLocationChanged方法,并在其中获取位置详细信息,但不将标记移到新位置.
解决方法:
检查您的地图上是否未添加标记(第一次).如果没有,则添加标记并保留对该标记的引用.对于随后的onLocationChanged调用,只需使用相同的引用来更新纬度和经度.
Marker myMarker; if(myMarker == null){ marker = map.addMarker(options); } else { marker.setposition(new LatLng(location.getLatitude(),location.getLongitude())); }
希望这可以帮助.让我知道这不起作用.将发布更多相关代码.
总结以上是内存溢出为你收集整理的java-如何在android中的位置更改时更改标记位置全部内容,希望文章能够帮你解决java-如何在android中的位置更改时更改标记位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)