def get(self, args): geocode = Geocode() address = args["address"] complete_json_answer_for_address = geocode.get_coordinates_from_address( address) if complete_json_answer_for_address is not None: latitude = float( complete_json_answer_for_address[0]["geometry"]["lat"]) longitude = float( complete_json_answer_for_address[0]["geometry"]["lng"]) LOGGER.info("Coordinates for address \"" + address + "\" are: " + str(latitude) + "," + str(longitude)) if args["howbig"] == "": nearest_station = engine.get_nearest_train_station( latitude, longitude) else: nearest_station = engine.get_nearest_train_station_this_big( latitude, longitude) return json.loads( json_util.dumps(nearest_station, ensure_ascii=False).encode('utf8')) else: LOGGER.error("No answer from OpenCageGeocode for address: \"" + address + "\"") return json.loads( "{\"error\": {\"message\": \"Bad request. Check if address exists\", \"status\": 400}}" ), 400
def test_should_return_none_because_address_unknown(self): geocode = Geocode() address = "tototatatiti" result = geocode.get_coordinates_from_address(address) self.assertIsNone(result)
def test_should_return_coordinates(self): """ Saint Quentin le verger : x1 = 48.619380 y1 = 3.746980 """ geocode = Geocode() address = "14 rue de Vignolle, Saint-Quentin-le-verger" result = geocode.get_coordinates_from_address(address) latitude = str(result[0]["geometry"]["lat"]) longitude = str(result[0]["geometry"]["lng"]) distance = engine.get_distance(float(latitude), float(longitude), 48.619380, 3.746980) self.assertLess(distance, 0.5)
def get(self, args): geocode = Geocode() detailed_address = address_to_string(args) result = geocode.get_coordinates_from_address(detailed_address) return result