public void addMarker(Airplane airplane) { AirplanePosition position = airplane.getLastPosition(); LatLng location = new LatLng(position.getLatitude(), position.getLongitude()); float angle = (float) airplane.getHead() - map.getCameraPosition().bearing; MarkerOptions options = new MarkerOptions(); options.position(location); options.title(airplane.getHex()); options.icon(BitmapDescriptorFactory.fromBitmap(getAirplaneIcon(angle))); options.anchor(0.5f, 0.5f); Marker marker = map.addMarker(options); markers.add(marker); }
public void updateMarker(Airplane airplane) { for (Marker m : markers) { boolean infoShow = m.isInfoWindowShown(); if (m.getTitle().equals(airplane.getHex())) { AirplanePosition position = airplane.getLastPosition(); LatLng location = new LatLng(position.getLatitude(), position.getLongitude()); float angle = (float) airplane.getHead() + map.getCameraPosition().bearing; m.setPosition(location); m.setIcon(BitmapDescriptorFactory.fromBitmap(getAirplaneIcon(angle))); if (infoShow) m.showInfoWindow(); break; } } }