OSM track en POI weergave vanuit GPX bestand

Bedankt Javawa, ik zal dat kaartje tzt dus moeten updaten. Op de site van gpsvisualizer lees ik dat dat niet al te moeilijk moet zijn:

Heb het kaartje gedownload zip file. geunzipt.
En index gestart met IE chrome en Firefox maar krijg geen map.
(zo de file opgestart)

Veel browsers vinden een lokaal XML bestand, wat in feite een gpx file is niet leuk, dit ivm virusgevaar.

hmmm, volgens de licentie mag ik het dus niet aanpassen…

*Je mag dit bestand/deze software niet wijzigen, aanpassen, vertalen of afgeleide werken gebaseerd op dit bestand/deze software vervaardigen. *

En wat staat daaronder?
(ik weet 't, een beetje omslachtig; dat komt omdat ik een standaarddisclaimer heb die overal onder gezet wordt. Misschien nog maar eens een keertje aanpassen)
Je mag het dus wel aanpassen.

Het gaat er niet om dat het een XML-bestand is, en is ook niet vanwege virusgevaar. Waar het wel om gaat is dat een script in de browser nooit toegang krijgt tot lokale bestanden, met een paar uitzonderingen zoals javascriptbestanden of afbeeldingen. De reden is dat het niet zo mag zijn dat een mogelijk kwaadaardig script zomaar willekeurige bestanden op je computer kan ‘stelen’. Je kunt dit wel toestaan via de instellingen van de browser, maar dat is niet raadzaam.

Voor deze gevallen heb ik om mijn pagina de mogelijkheid om het gpx-bestand te uploaden, waarna je een html-bestand terugkrijgt waar de inhoud van het gpx-bestand in opgenomen is. Zet je de bestanden online om ze te bekijken, dan hoeft dat niet.

Dit is het geworden. ben nog op zoek naar verdere leuke features voor de map.
Ik verwacht dat er ook nog iets overbodige code in staat.

gr Wim

<html>
<head>
<!-- 	voorbeelden http://wiki.openstreetmap.org/wiki/Openlayers_Track_example
		voorbeeld zoomen http://wiki.openstreetmap.org/wiki/User:MHohmann 
-->

	<!-- Source: http://wiki.openstreetmap.org/wiki/Openlayers_Track_example -->
	<title>Simple OSM GPX Track</title>
	<!-- bring in the OpenLayers javascript library
		 (here we bring it from the remote site, but you could
		 easily serve up this javascript yourself) -->
	<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
	<!-- bring in the OpenStreetMap OpenLayers layers.
		 Using this hosted file will make sure we are kept up
		 to date with any necessary changes -->
	<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
 
	<script type="text/javascript">
		
 
		var map; //complex object of type OpenLayers.Map
		var gpxStyles = new OpenLayers.StyleMap({
                "default": new OpenLayers.Style({
                    pointRadius: "8", 
                    label: "${name}",
                    labelAlign: 'cb',
                    fontSize: 12,
                    fontFamily: "Arial",
                    fontColor: "black",
					fontWeight: "bold",
                    labelYOffset: 10,
                    fillColor: "brown",
                    strokeColor: "blue",
                    strokeWidth: 5,
                    strokeOpacity: 0.5
                }),
                "select": new OpenLayers.Style({
                    fillColor: "#66ccff",
                    strokeColor: "#3399ff",
                    graphicZIndex: 2
                })
            });
			
		function init() {
			map = new OpenLayers.Map ("map", {
				controls:[
					new OpenLayers.Control.Navigation(),
					new OpenLayers.Control.PanZoomBar(),
					//new OpenLayers.Control.LayerSwitcher(),
					new OpenLayers.Control.MousePosition(),
					new OpenLayers.Control.Attribution()],
				units: 'm',
				projection: new OpenLayers.Projection("EPSG:900913"),
				displayProjection: new OpenLayers.Projection("EPSG:4326")
			} );
			
			// This will enable us to autozoom the map to the displayed data.
			var dataExtent;
			var setExtent = function()
			{
				if(dataExtent)
					dataExtent.extend(this.getDataExtent());
				else
					dataExtent = this.getDataExtent();
				map.zoomToExtent(dataExtent);
			};
			
			// Define the map layer
			// Here we use a predefined layer that will be kept up to date with URL changes
			layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
			map.addLayer(layerMapnik);
			
			// Add the Layer with the GPX data
			var lgpx = new OpenLayers.Layer.Vector("Route", {
				strategies: [new OpenLayers.Strategy.Fixed()],
				protocol: new OpenLayers.Protocol.HTTP({
					url: "route.gpx",
					format: new OpenLayers.Format.GPX({extractWaypoints: true, extractRoutes: true, extractAttributes: true})
				}),
                styleMap: gpxStyles,
				projection: new OpenLayers.Projection("EPSG:4326")
			});
			map.addLayer(lgpx);
				
			// This will perform the autozoom as soon as the GPX file is loaded.
			lgpx.events.register("loadend", lgpx, setExtent);
			map.addLayer(lgpx);						
		}
	</script>
 
</head>
<!-- body.onload is called once the page is loaded (call the 'init' function) -->
<body onload="init();">
	<!-- define a DIV into which the map will appear. Make it take up the whole window -->
	<div style="width:100%; height:100%" id="map"></div>
</body>
</html>

Zal in het vervolg mijn woorden beter kiezen, sorry, maar dit is wat ik ook bedoel…

@Allroads:
Je slaat de spijker op zijn kop… Zelf zit ik aan een PHP database te denken omdat deze GPX files idd een crime zijn.
Helaas vanaf December veel Offshore in het buitenland geweest, dus dan geen tijd om met de hobby’s bezig te zijn :frowning: , gelukkig nog 1 keer weg, dus vanaf volgende maand meer tijd.
Wat ik denk wat gaat werken is de routes via PHP op een OSM map te krijgen, en dan via een download button ze om te zetten naar GPX.
Wat ik ook zou willen maken is een overzicht van POI’s vanuit OSM zoals in jouw voorbeeld te zien is en deze dan via een soort selectielijst te kunnen samenvoegen met de track naar GPX.

Heb je trouwens dat lijstje rechts bovenin gezien voor V-Max Rijders ?:lol:

Lokaal zijn GPX-bestanden een probleem, maar als ze op een webserver staan niet… dan worden ze wel gewoon ingelezen. Via PHP kan natuurlijk (en heeft organisatorisch wel de voorkeur boven losse bestanden), maar ook dan heb je een webserver nodig.

Klopt, heb PHP op een MySQL servertje draaien, gebruik het om Stuklijsten te genereren i.c.m. AutoCAD P&ID’s. Alleen is OSM andere koek :frowning:
Losse GPX en TCX files vind ik persoonlijk lastig beheren, QuoVadis heeft wel een database, maar die vindt ik persoonlijk iets te duur. We blijven Nederlander!

Wim,

een voorbeeld met Leaflet: http://blog.thematicmapping.org/2012/08/showing-gps-tracks-with-leaflet.html (alleen is de GPX file geconverteerd)

Komt allemaal steeds meer in de richting die ik wil.
Ik zoek nog een mogleijkheid om de GPX die ik display, ook te kunnen downloaden. Ik denk aan een button in het kaartje in een hoe, als je daarop drukt kn mje de file opslaan ergens waar je zelf wilt.
Buttons kan ik maken via deze http://openlayers.org/dev/examples/accessible-panel.html optie.
Maar daarvan een download starten van de gpx is me nog niet gelukt.

Wim

Je kunt toch gewoon een link naar het GPX-bestand maken?
Om te voorkomen dat de browser het bestand opent i.p.v. het te downloaden moet je even in de map waarin de GPX-bestanden staan op de server een bestand met de naam .htaccess maken, met daarin de volgende code:
AddType application/save .gpx

De reden waarom het niet werkte is eerder al gegeven; om het nog makkelijker te maken biedt ik naast het tooltje wat ik eerder had gemaakt de mogelijkheid om een kant en klaar HTML-bestand te genereren aan de hand van een te uploaden GPX-bestand. Je kunt allerlei zaken instellen, je hebt geen extra bestanden meer nodig en het werkt ook vanaf de harde schijf van je computer. Bijkomend voordeel is dat het HTML-bestand mét daarin de data aanzienlijk kleiner is dan het GPX-bestand (bij het voorbeeld op mijn site scheelt het zo’n 75%).

@javawa
Ik was in de veronderstelling dat als de gpx niet werkt, je wel de ondergrondkaart openstreetmap/mapquest te zien kreeg.
Vandaar mijn opmerking. Het werkt nu!

Vraag met betrekking tot .gpx laten zien op website.
Soms begin je te twijfelen.

Bij je internetabonnement heb je meestal ook een website mogelijkheid.
Hier KPN, is er verschil in mogelijkheden dan wanneer je een website ergens anders host met een andere websitenaam?
Daarmee bedoel ik, is er iets geblokkeerd bij kpn?

Krijg het niet voor mekaar om om .gpx te laten zien met 500 kleine tracks van 2 tot 10 trkpoints.
Rare is dat, lokaal de files geopend in firefox, dan zie ik ze, zet ik dezelfde met filezilla op deze kpn account dan zie ik ze in firefox niet.

Leek mij de simpelste mogelijkheid om even iets uit te proberen.

Zie je wel de kaart?
Weet je zeker dat je de GPS ook goed gelinkt hebt, alshij de GPX niet kan vinden, ja, dan werkt het niet.
Probeer daarom altijd eerst met alles in 1 directory, daarna zou je files in andere directories kunnen plaatsen maar dan moet je de links in de html files aanpassen

Ik zag lokaal wel alles met FF en niet met EI
Online zie ik met beide wat ik wil zien.

gr Wim

Ik zie wel de kaart en de knoppen op de kaart, ook zie ik in de layerswitcher de gpx layername.
heb ook een gpx met een track gemaakt, dat maakte niets uit.

De .gpx is gemaakt met garmin mapsource.

Ik heb het werkend. Zie www.mtkessel.nl en dan de routedatabase.
Is dat wat je zoekt, copieer de code maar.
routedatabase.htm en display.htm moet je hebben.

Lukt dat niet dan PM mij maar en geef je mailadres.

Wim

Laat maar, is waarschijnlijk een ander KPN probleem wat hier niet thuis hoort.
Mijn files helemaal uitgekleed, met een track in root zelfde structuur, en dan .gpx niet werkend op de homepage bij je KPN account.:mad: