So ein GIS ding Afstandsberegninger med pgRouting og python på en gratis Amazon server København
Agenda Runde 2A Opsætning af server Om pgRouting Eksempel Runde 2B - hør mere om Amazon (og få koden) Python koden der beregner afstande Optimering af kald til pgRouting POI fra OSM og Rejseplanen Alternativer til pgRouting?? Erfaringsudveksling
Opsætning af Amazon server
pgRouting Core Features pgRouting provides functions for: All Pairs Shortest Path, Johnson’s Algorithm [1] All Pairs Shortest Path, Floyd-Warshall Algorithm [1] Shortest Path A* Bi-directional Dijkstra Shortest Path [1] Bi-directional A* Shortest Path [1] Shortest Path Dijkstra Driving Distance K-Shortest Path, Multiple Alternative Paths [1] K-Dijkstra, One to Many Shortest Path [1] Traveling Sales Person Turn Restriction Shortest Path (TRSP) [1] Shortest Path Shooting Star [2] Other ”Features” Service area Distance Matrix
Eksempler
Runde 2B Runde 2B - hør mere om Amazon (og få koden) Python koden der beregner afstande Optimering af kald til pgRouting POI fra OSM og Rejseplanen Alternativer til pgRouting?? Erfaringsudveksling
Amazon og installation af pgRouting Opret en linux ubuntu server på (det er gratis): Åben en consol -Åben port 80 -Installer git -Klon git arkiv - Kør filen: install_all.sh (kør som super user)
Beregn afstande gisgroup_api.distance ~~~~~~~~~~~~~~~~~~~~~ Provide endpoint for calculating distances between addresses and POIs """ import os from flask import Blueprint, jsonify from. import utils as distance_utils from..geocode import utils as geocode_utils # initialize blueprint blueprint = Blueprint('distance', "/ / " ) def distance_address( target, origin ): location_origin = geocode_utils.findone( origin ) location_target = geocode_utils.findone( target ) coordinates_origin = location_origin.get('adgangsadresse').get('adgangspunkt').get('koordinater') coordinates_target = location_target.get('adgangsadresse').get('adgangspunkt').get('koordinater') r = distance_utils.calculate( coordinates_origin[0], coordinates_origin[1], coordinates_target[0], coordinates_target[1] ) return jsonify( distance=r )
Optimering af kald Optimeringer i koden Brug af en god hurtig geokoder (f.eks. DAWA) Brug af de rigtige projektioner (konverter evt)! Geo-index på felter i postgis Søge nærmeste i fugleflugt, udvælge dem og udregn djikstra til dem og kun dem Caching på server
POI fra OSM og Rejseplanen OSM: Rejseplanen:
Alternativer til pgRouting afstandsberegning
Erfaringsudveksling Hvad har andre af erfaringer?