ferrosoft.apps.ferromaps.services package¶
Submodules¶
ferrosoft.apps.ferromaps.services.addresses module¶
Services for geocoding and address routing.
- class ferrosoft.apps.ferromaps.services.addresses.Address(first_name='', last_name='', salutation='', company='', additional_lines='', street='', house_no='', city='', postal_code='', country='')[source]¶
Bases:
object
- class ferrosoft.apps.ferromaps.services.addresses.AddressRouterFake(distances)[source]¶
Bases:
AddressRouterService
- class ferrosoft.apps.ferromaps.services.addresses.AddressRouterGeoapify(config)[source]¶
Bases:
AddressRouterService
- class ferrosoft.apps.ferromaps.services.addresses.AddressRouterService[source]¶
Bases:
Geocoder,DistanceRouter,ABCAddressRouter service bundles Geocoder and DistanceRouter providing a unified API.
- classmethod get_instance()[source]¶
Return instance or create it using a sensible default suitable for production.
- instance = None¶
The instance to return in get_instance. If None, a “sensible” default implementation is returned.
- exception ferrosoft.apps.ferromaps.services.addresses.AddressServiceException[source]¶
Bases:
RuntimeError
- class ferrosoft.apps.ferromaps.services.addresses.CachingAddressRouter(upstream)[source]¶
Bases:
AddressRouterService- CACHE_PREFIX = 'ferromaps'¶
- UPSTREAM_NONE = '__NONE__'¶
- exception ferrosoft.apps.ferromaps.services.addresses.CoordinatesNotFound(address)[source]¶
Bases:
GeocodeExceptionException raised if no coordinates could be determined for an address.
- class ferrosoft.apps.ferromaps.services.addresses.DistanceRouter[source]¶
Bases:
ABCDistance router determines distance of a route.
- class ferrosoft.apps.ferromaps.services.addresses.FuzzyGeocoder[source]¶
Bases:
Geocoder- SQL_QUERY = "\n SELECT address_label, postal_code, city, longitude, latitude, country, street, house_no, 1 AS weight\n FROM ferromaps_geocodedaddress\n WHERE \n (CASE \n WHEN %(house_no)s = '' THEN \n street LIKE %(street)s AND city LIKE %(city)s\n ELSE \n house_no = %(house_no)s AND street LIKE %(street)s AND city LIKE %(city)s\n END)\n\n UNION\n\n SELECT address_label, postal_code, city, longitude, latitude, country, street, house_no, 2 AS weight\n FROM ferromaps_geocodedaddress\n WHERE \n daitch_mokotoff(address_label) = daitch_mokotoff(%(address_line)s)\n\n ORDER BY weight limit 1;\n "¶
- exception ferrosoft.apps.ferromaps.services.addresses.GeocodeException[source]¶
Bases:
AddressServiceExceptionException raised in geocoding methods.
- class ferrosoft.apps.ferromaps.services.addresses.Geocoder[source]¶
Bases:
ABCGeocoder determines Location from address query.
- class ferrosoft.apps.ferromaps.services.addresses.GreatCircleDistanceRouter[source]¶
Bases:
DistanceRouter- EARTH_RADIUS_KM = 6378.388¶
- class ferrosoft.apps.ferromaps.services.addresses.Location(coords, name, address)[source]¶
Bases:
object- coords: Coordinates¶
- class ferrosoft.apps.ferromaps.services.addresses.RouteLeg(start, destination)[source]¶
Bases:
object- destination: Coordinates¶
- start: Coordinates¶
- exception ferrosoft.apps.ferromaps.services.addresses.RoutingException[source]¶
Bases:
AddressServiceException