Routeren met OSM

Hallo,

Met html statements als dit…

…kan ik een OSM kaartje maken in een html pagina.

Vraag-1: Bestaat er een mogelijkheid dat ik routering kan toepassen door toevoegen van 2 paar geo-coordinaten? Dat ik dus hetzelfde kaartje krijg, maar met een ingekleurde route, direct vanuit html?

Vraag-2: kan iemand mij verwijzen naar documentatie op het gebied van OSM en routering?

Dat routering met OSM mogelijk is blijkt uit sites als: http://www.yournavigation.org/

Bij voorbaat dank!

Je kunt routering verkrijgen door de API van http://yournavigation.org aan te spreken en het resultaat weer te geven in jouw site. De API documentatie vind je hier.

Als je nog even geduld hebt; ik ben bezig om YOURS (de site + routing backend die draait op yournavigation.org) beschikbaar te maken voor derden onder een Berkeley licentie.

Hou dit forum topic en de YOURS wiki pagina in de gaten om vorderingen op dit vlak te volgen.

Ik heb zelf een beetje rondgekeken en gezien dat je met dit:

http://www.yournavigation.org/?flat=51.44&flon=5.463&tlat=52.1628&tlon=4.4864&v=motorcar&fast=1

het doel kunt bereiken.

Vraag: is het mogelijk om alleen het kaartje te genereren zonder legenda’s, buttons, combo’s, zoom controls, etc.?

Vraag2: zijn er andere vergelijkbare services? Anders gevraagd: welke is de meest gebruikte op OSM-gebaseerde routing service?

Bij voorbaat dank.

P.S. oeps, gepost zonder te zien mijn eerste vraag al was beantwoord.

Makkelijk: yournavigation, want dat is de enige die wereldwijd kan routeren op basis van OSM data, 7000 route request tot nu toe deze maand, 13000 requests in Januari. Er is ook OpenRouteService, maar van hun weet ik de aantallen route requests niet en bovendien hebben ze alleen maar data voor Europa (en ook dat maar sinds kort). Cloudmade heeft ook een commerciele route service, heb ik nooit naar gekeken.

Lambertus,

Mijn doel is om in 1 kaartje een route weer te geven in een kleur (bv. blauw) plus 1…N andere routes in een andere kleur (bv rood). Voor alle routes heb ik de geo-coordinaten van de eindpunten.

Hoe ga ik dan te werk?

Op basis van de N+1 geo-coordinaten kan ik een omhullend rechthoek berekenen en daar een OSM-kaartje van genereren zonder routes erin.

Ik begrijp uit jouw link naar YOURS dat ik gosmore moet gebruiken voor route-calculatie. Wil dat zeggen dat ik N+1 keer dit soort aanroepen moet doen:

http://www.yournavigation.org/gosmore.php?flat=52.215676&flon=5.963946&tlat=52.2573&tlon=6.1799&v=motorcar&fast=1&layer=mapnik

Zo ja, dan heb ik N+1 KML-files en een OSM-kaart zonder routes.

Hoe combineer ik dit tot een kaart met N+1 routes erin met de 2 gevraagde kleuren?

(Ik kan me zo voorstellen dat ik die N+1 KML files tot 1 grote KML file moet mergen.)

Als de routes altijd hetzelfde zijn dan zou ik die niet elke keer opnieuw laten berekenen. Je kunt dan de KML files (of 1 grote, kan ook) op de harddisk van de webserver zetten en die vanuit OpenLayers laden met een AJAX call. Je kunt dan per KML een andere kleur opgeven maar ik kan me ook voorstellen dat je de kleur van de lijn al in de KML kan definieren (maar ik ben niet zo’n held in KML).

Zo’n KML route beschrijving vertaalt zich binnen OpenLayers in een linestring vector feature. Die feature voeg je toe aan een layer bovenop de kaart, je geeft wat eigenschappen op zoals lijnkleur en dikte en OL rendert het geheel.

Je zult je goed in OpenLayers moeten verdiepen en dat is (door de summiere documentatie) best lastig. Gelukkig zijn er op de website van OL veel voorbeelden te vinden waarvan je de broncode kan bekijken. Je kunt ook kijken naar de broncode van yournavigation aangezien die doet wat jij ongeveer wilt.

Hallo Lambertus,

Ik zie dat het inderdaad niet zo eenvoudig is.

Het punt is dat alle N+1 routes elke keer uniek zijn. Heb gisteren de hele avond gelezen en gezien dat je de OSM-map kunt dowloaden (3GB oid in zipvorm) en kunt opslaan op je webserver, waarmee je al tijdrovende http calls kunt uitsparen; wellicht dat het mogelijk is om uit die (naar ik aanneem) mondiale file Noordwesteuropa te isoleren om zo het bestand aanmerkelijk te verkleinen.

Wat jij zegt over kleuren en lineString, dat had ik gisteren al gezien. Wat ik niet snap is hoe de KML file, die de routes bevat, wordt gelinked aan het kaartje zoals teruggegeven na een call naar openstreetmap.org (zie vb postje 1). Dat probleem moet jij al opgelost hebben met jouw mapservice.

Dus mijn vraag is: ik weet hoe ik een kaartje kan genereren en hoe ik een KML file kan genereren met routes. Hoe kan ik die twee aan elkaar linken zodat de routes in het kaartje getoond worden?

TOEVOEGING

Ik denk dat ik het al snap… je doet alles in javascript, zoals weergegeven in de broncode van je site http://www.yournavigation.org/. Ik zie daar referenties naar gosmore, OpenLayers, enz. Dat ziet er inderdaad behoorlijk complex uit en is niet iets wat je even doet.

Aan de andere kant zie ik copyright notices van OpenLayers, ene Sam Stephenson, Sabre Airlines en Google. Dus ik wordt er toch niet helemaal wijs uit wat de inspanning nu werkelijk is om mijn doel te bereiken.

Dus mijn oorspronkelijke vraagblijft staan.
Je antwoord luidt waarschijnlijk: in javascript met calls naar osm, gosmore, openlayers. Maar is dat een kwestie van een ‘halve meter javascript’ of moet ik echt denken aan een substantieel grotere inspanning?

Haha, ja een dynamische website met veel functies is niet iets wat je even in 1 avond doet. Dat moet je natuurlijk wel begrijpen.

Wat je dus nodig hebt (en je voor een groot deel kunt kopieren uit voorbeelden als yournavigation.org) is:

  • een webserver met daarop een html en js bestand die een OL client in de browser laden (kopieren uit YOURS → yournavigation.org).
  • deze client laad the mapnik slippy map van openstreetmap (die zou ik dus echt niet zelf willen renderen tenzij je andere kleuren en zo wilt laten zien!). Of je nu zelf een mapnik installatie gebruikt of die van OSM, het maakt voor de gebruiker echt niks uit.
  • een route request voor elke route (kopieren uit YOURS)
  • wat code om de KML te tekenen in een OL layer (kopieren uit YOURS)

Uiteindelijk is er wel wat JS nodig maar je hoeft zelf niet heel veel te bedenken, gewoon kopieren en aanpassen naar je wensen. Wat de copyrights betreft: zou ik me niet druk om maken (en waar zag je Sabre Airlines staan eigenlijk?).

http://www.yournavigation.org/?flat=51.44&flon=5.463&tlat=52.1628&tlon=4.4864&v=motorcar&fast=1

view page source, regel 34 → sabre airlines

Hardstikke goed. Ik ben een java man, geen (nauwelijks) javascript, vandaar.
Dus waarschijnlijk is die enorme berg javascript van jouw yournavigation page voor het grootste gedeelte standaard libraries, die vanuit het onderste stukje html code wordt aangeroepen.

Ik schrok al, het valt dus wel mee. Het verschil met jouw webpagina is dat bij mij de geo-coordinaten van de routes zich in een database van de app server bevinden. Ik zou dus nog kunnen overwegen om het kaartje met routes en al in de server op te bouwen en te forwarden naar de browser en daarmee mezelf een javascript leercurve bespaar. Maar voor de snelheid zal het wel niet veel uitmaken.

Bedankt voor de informatie! Ik ga met mezelf in conclaaf over hoe nu verder en met inlezen in kml en ol.

Als je Firefox als browser pakt en daarin de Firebug addon installeert, zie je dat yournavigation site bestaat uit meerdere bestanden en de eigenlijke site code nog wel mee valt. Met firebug kun je makkelijk alle code bekijken, de inhoud van de verschillende variabelen bekijken etc. Echt een onmisbare hulp voor een webdeveloper.

In yournavigation worden de coordinaten van de start en finish marker gebruikt om mee te geven aan de gosmore.php aanroep, die informatie kan natuurlijk ook ergens anders vandaan komen. Daar is niet zoveel werk voor nodig.

Ik vind de user interface van http://www.openrouteservice.org/ wel wat handiger dan jouw navigation, gewoon middels klikken met de muis op de kaart voor het bepalen van start, eind en tussenpunten, zoals bij google maps. Werkt nog niet zo snel, maar het begint al ergens op te lijken. :slight_smile:

Intussen ook nog even gekeken naar http://maps.cloudmade.com , ziet er nog beter uit en werkt praktisch al bijna zo snel als de routing op google maps.

Nou dan hou ik er maar mee op, als die andere services allemaal zoveel beter zijn.

Nee, zo simpel ben ik niet van mijn stuk te brengen:
Bij Google maps kun je ook niet zomaar op de kaart klikken om de start en eind punten op te geven. Routing voor fietsers fietsers over fietsroutes of vrachtwagens kan Google ook niet. De via’s zijn wel erg cool uiteraard. Heb je bij yournavigation al eens gebrobeerd om op de TO en FROM button the klikken en daarna op de kaart?

Openrouteservice heeft alleen maar routing in west-europa. Maar heeft een veel meer academische insteek en heeft daardoor wat truukjes die yournav niet heeft.

De Cloudmade routeplanner is natuurlijk bedoeld om geld mee te verdienen. Yournavigation gaat binnenkort opensource onder de BSD licentie.

Userinterfaces zijn een persoonlijke zaak. Iedereen heeft andere voorkeuren, ik heb ook al vaak genoeg gehoord dat mensen yournavigation fijner vinden (dan ORS) omdat deze zo simpel is.

Er zijn landen waar nog nooit een online routeplanner zijn diensten heeft aangeboden. Yournavigation is (was?) de eerste die echt wereldwijd routing aanbiedt en dat vinden een boel mensen fijn, zoals blijkt uit deze blogpost.

Die van cloudmade mag er dan gelikter uitzien, de navigatie lijkt nergens op:
http://tinyurl.com/b6ro7n

:laughing:

Hoi Lambertus,

Nee, die had ik niet gevonden, is wel handiger dan eerst de straatnaam te moeten intikken. Ik ben nogal lui en dan haak ik al gauw af.
Bovendien moet je de naam dan ook exact spellen. Niet echt handig, geef mij maar een directe muisklik op de kaart. Verder is de routing erg traag op jouw navigation. Het ingeven van tussenpunten mis ik ook, en ik kan de TO en FROM punten niet slepen naar een andere plek. Tot gisteren had ik nog nooit gehoord van die cloudmade planner totdat ik dit topic las.

Het is inderdaad prettig te weten dat al je inspanningen niet voor niets zijn. Ik hoop dat je Yournavigation nog wat meer kunt uitbouwen en verbeteren en wens je veel succes!

Groeten, Minko

Kan wel, rechtermuisklik->routebeschrijving vanaf dit punt
Fietsroutes: kies optie lopen en de route gaat ook over fietspaden (er verschijnen er steeds meer op de kaart van Google maps - teleatlas)

Als een To of From button geactiveerd is dan kun je door nogmaals op de kaart te klikken de marker op een andere plaats neer te zetten en wordt de route automatisch opnieuw berekend, dat is ook de reden waarom niet direct de andere marker geactiveerd wordt. Dat de routing traag is (gister/vandaag) komt omdat er een ander zwaar proces op de server draait. Tussenpunten en versleepbare To en From markers staan op de planning.