@Override
  public void onDraw(Canvas canvas, RectF latlonRect, RectF tilesRect, DrawSettings settings) {
    if (!Session.viewVehicles) {
      return;
    }
    mView.calculateTileRectangle(
        boundsRect,
        mView.getCenterPointX(),
        mView.getCenterPointY(),
        mView.getXTile(),
        mView.getYTile(),
        tileRect);

    /** Only draw visible Vehicles */
    for (int i = 0; i < locations.size(); i++) {
      VehicleLocation location = locations.get(i);
      if (location != null) {
        if (mView.isPointOnTheRotatedMap(location.getLatitude(), location.getLongitude())) {
          VehicleIcon icon = iconMap.get(location.getStatus());
          if (icon != null) {
            icon.draw(canvas, mView, location);
          }
        }
      }
    }
  }
 @Override
 public void vehicleModified(VehicleLocation vehicle) {
   if (locations.contains(vehicle)) locations.remove(vehicle.getId());
   locations.add(vehicle);
 }