       if lat? && lon?
         v = @updateVehicle(key, lat, lon, payload)
         @updateMarkerPopup(v, payload)
+        if v.isMine
+          @zoomToVehicle(v)
 
   onMissionEnd: (data) =>
     vehicleKey = @vehicleKey(data.missionId)
     delete @scope.vehicleMarkers[vehicleKey]
     delete @scope.vehiclePaths[vehicleKey]
+
+  # Zoom to vehicle, if it is different from the previous targeted vehicle
+  zoomToVehicle: (vehicle) =>
+    payload = vehicle.payload
+    lat = payload.latitude
+    lon = payload.longitude
+    if payload.id != @currentMissionId
+      @log.debug("Zooming to #{payload.id}")
+      @currentMissionId = payload.id
+      @scope.center =
+        lat: lat
+        lng: lon
+        zoom: 9
 
   # Returns the marker
   updateVehicle: (vehicleKey, lat, lon, newMission) =>

    # direction of arrow on icon should change depending on direction

    loginName = @authService.getUser()?.login
    isMine = loginName == mission?.userName
    @log.debug("#{mission?.userName} #{mission?.id} vs #{loginName} isMine=#{isMine}")
    v.icon =
        iconUrl:
          if isMine
            mission.userAvatarImage + '?d=mm'
          else if isLive
            'images/vehicle-marker-active.png'

        iconAnchor: [17.5, 17.5] # point of the icon which will correspond to marker's location
        popupAnchor: [0, -17.5] # point from which the popup should open relative to the inconAnchor

    if v.isMine # Show rounded corners on avatar icons
      v.icon.className = "img-rounded"

    @scope.vehicleMarkers[vehicleKey] = v
