   [concept-type element]
   (if-let [value (cx/double-at-path element [:value])]
     (qm/map->OrbitNumberValueCondition {:value value})
-    (let [string-double-fn (fn [n] (when n (Double. n)))
-          range-val (-> (cx/attrs-at-path element [:range])
-                        (set/rename-keys {:lower :min-value :upper :max-value})
-                        (update-in [:min-value] string-double-fn)
-                        (update-in [:max-value] string-double-fn))]
-      (qm/map->OrbitNumberRangeCondition range-val))))
+    (qm/map->OrbitNumberRangeCondition (element->num-range concept-type element))))
+
+(defmethod element->condition :equator-crossing-longitude
+  [concept-type element]
+  (qm/map->EquatorCrossingLongitudeCondition (element->num-range concept-type element)))
 
 (def aql-query-type->concept-type
   "Mapping of AQL query type to search concept type"

             :temporal {:name :temporal :type :temporal}
             :additionalAttributes {:name :attribute :type :attribute}
             :orbitNumber {:name :orbit-number :type :orbit-number}
             :equatorCrossingLongitude {:name :equator-crossing-longitude :type :num-range}
             :equatorCrossingDate {:name :equator-crossing-date :type :equator-crossing-date}
             :TwoDCoordinateSystemName {:name :two-d-coordinate-system-name :type :string}}})



(defn- update-values [m f & args]
  "update values in a map by applying the given function and args"
  (reduce (fn [r [k v]] (assoc r k (apply f v args))) {} m))

(defn- inheritance-condition
  "Returns the inheritance condition for the given key value and options"
