       url: "#{CONSTANTS.geocoder.collisionsUrl}?#{$.param(params)}&bbox={lon1},{lat1},{lon2},{lat2}"
       propertyItems: 'features'
       propertyLoc: ['properties.latitude','properties.longitude']
-      minShift: 200
+      minShift: 10
+      caching: false
+      propertyId: 'properties.id'
       dataToMarker: (feature, latlng) =>
         props = lookup[feature.properties.severity]
-        marker = new L.CircleMarker(latlng, props).addTo @collisionLayer
+        marker = new L.CircleMarker(latlng, props)
         marker.bindPopup(
           "<h3><a href=\"#{feature.properties.url}\">Collision #{feature.properties.id}</a></h3>
           <p>Date and time: #{feature.properties.datetime} </p>
           <p>Severity: #{feature.properties.severity} </p>
           <p><a href=\"#{feature.properties.url}\">View on CycleStreets</a></p>"
         )
+        return marker
     })
+
+    # https://github.com/stefanocudini/leaflet-layerJSON/issues/19
+    oldOnRemove = @collisionLayer.onRemove.bind(@collisionLayer)
+    @collisionLayer.onRemove = (map)->
+      oldOnRemove(map)
+      @._markersCache = {}
 
   addSearchControl: (opts = {}) =>
     formatJSON = (rawjson) ->

      propertyItems: 'features'
      propertyLoc: 'geometry.coordinates'
      caching: false
      updateMarkers: false
      minShift: 10
      hashGenerator: (data) ->
        data.id
      dataToMarker: (data)->
        L.geoJson(data,
        pointToLayer: featurePointToLayer

        )
        popup.openPopup() if @popUpID == id

        return marker
    })

    # https://github.com/stefanocudini/leaflet-layerJSON/issues/19
    oldOnRemove = @photoLayer.onRemove.bind(@photoLayer)
    @photoLayer.onRemove = (map)->
      oldOnRemove(map)
      @._markersCache = {}

  buildCollistionLayer: =>
    lookup = {
