def decorated_function(*args, **kwargs): res = request.get_json(force=True) if "location" in res and "lat"in res["location"] and "lng" in res["location"]: lat = res["location"]["lat"] lng = res["location"]["lng"] if Location.isValid(lat,lng): return f(lat=lat, lng=lng) return jsonify(info="Location coordinates not acceptable; Latitude (S-N): -90 to +90; Longitude (W-E): -180 to +180"),400
def suppose_assignment(): # import all not taken deliveries now = datetime.datetime.now() cond = { "conditions" : { # "start" : datetime.datetime(now.year,now.month,now.day,0,0,0).strftime("%Y-%m-%d %H:%M:%S"), # "end" : (datetime.datetime(now.year,now.month,now.day,0,0,0) + datetime.timedelta(days=1, seconds=-1)).strftime("%Y-%m-%d %H:%M:%S"), "state" : "not assigned" } } deliveries = get_all_deliveries(company_id=session["user"]["company_id"], conditions=cond , return_obj=True, get_locations=True) # import drivers drivers = get_all_drivers(session["user"]["company_id"], return_obj=True, vehicles=True) suggestions = [] no_registered = [] for delivery in deliveries: best_distance = None best_driver = None for driver in drivers: if is_assignable(driver, delivery): distance = Location.getDistance(delivery.getSenderLocation(), driver.getLocation()) if best_distance is not None: if distance["distance"]["value"]< best_distance["distance"]["value"] : best_distance = distance best_driver = driver else: best_distance = distance best_driver = driver if best_distance is None or best_driver is None: no_registered.append(delivery) else : best = {"delivery" : delivery, "distance": best_distance["distance"], "duration" : best_distance["duration"]} append_suggestion(suggestions, best_driver, best) #update driver position best_driver.update_location(**delivery.getSenderLocation()) return jsonify(suggestions=suggestions),200
def address_to_geocode(): addr = "850 Avenue de Londres, Z.A.C du Grand Saint Charles, 66000 Perpignan, FR" geo = Location.getGeocode(addr=addr) print(geo)
def geocode_to_address(): addr = Location.getGeocode(lat=52.370402, lng=4.894948) print(addr)