Spring naar bijdragen

Aanbevolen berichten

Geplaatst

Ik ben een begnnend PHP programmeur en heb de volgende vraag. Ik zou graag met PHP een GPX (My Founds) willen lezen en zo een web pagina maken. Dus niet met een maar met PHP code. Uiteraard heb ik het forum afgezocht maar het enige dat (heel erg)in de buurt kwam is een berichtje uit 2006. Hier kom ik een heel eind mee maar.... De belangrijkste data (longitude en latitude) krijg ik niet uit het gpx bestand. Tot zover heb ik onderstaand script( met dank aan Boswijk Posse en GPSGek).

 

<?php
// De GPX file wordt ingelezen:
$xmlfeed=simplexml_load_file('434009.gpx');

// Loop door alle waypoints <wpt> in de GPX file
foreach($xmlfeed->wpt as $twpt){
       $tlon = (string)$twpt->lon; // longitude
       $tlat = $twpt->lat; // latitude
       $tname = $twpt->name; // GC code
       $turlname = $twpt->urlname; // cachenaam
       $ttype = $twpt->type; // cache type
	echo 'longitude: '. $tlon. '<br>';
	echo 'latitude: '. $tlat. '<br>';

       // lees de groundspeak specifiek variabelen
       // namespace wordt gedefinieerd voor alle tags die beginnen met groundspeak:
       // deze tags worden vervolgens als childeren uitgelezen

       $wptXML = simplexml_load_string($twpt->asXML());
// Let op voor het gpx bestand met found 		
       $groundspeak = $wptXML->children("http://www.groundspeak.com/cache/1/0/1");
//Voor de overige gpx-bestanden
//        $groundspeak = $wptXML->children("http://www.groundspeak.com/cache/1/0");

       // even echo naar de browser om te kijken of het werkt

	echo 'Naam: '. $groundspeak->cache->name. '<br>';
	echo 'Type: '. $groundspeak->cache->type. '<br>';
       echo 'Moeilijkheid: '. $groundspeak->cache->difficulty. '</br>';
       echo 'Terrein: '. $groundspeak->cache->terrain. '</br>';
       echo 'Container: '. $groundspeak->cache->container. '</br>';
       echo 'Logdate: '. $groundspeak->cache->logs->log->date. '</br>';
       echo 'Log: '. $groundspeak->cache->logs->log->text. '</br>';
       echo 'Land: '. $groundspeak->cache->country. '</br></br>';
}
?>

 

Het werkt behalve de twee regels

 

echo 'longitude: '. $tlon. '<br>';

echo 'latitude: '. $tlat. '<br>';

 

Het zal vast iets kleins zijn maar ik zie het niet meer. Wie kan me helpen?

Geplaatst

Kan je hiervoor niet beter op de PHP gerichte site's zijn? Ik verwacht niet dat je hier veel zult vinden.

 

Link(phpfreakz.nl, phphulp.nl)

Geplaatst

Kan je hiervoor niet beter op de PHP gerichte site's zijn? Ik verwacht niet dat je hier veel zult vinden.

 

Link(phpfreakz.nl, phphulp.nl)

 

Daar hebik ook gezocht en zoek nog steeds maar nog niets gevonden. Ik hoopte dat hier iemand was die mij kan helpen, vandaar

Geplaatst (bewerkt)

Even in een GPX bestand gekeken, de lat en lon zijn attributes:

  <wpt lat="52.158683" lon="6.2343">

Ik heb geen PHP interpreter bij de hand, maar

        $tlon = (string)$twpt->lon; // longitude 
       $tlat = $twpt->lat; // latitude 

veranderen in

        $tlon = $twpt['lon']; // longitude 
       $tlat = $twpt['lat']; // latitude 

zou moeten helpen.

bewerkt door J-Thread
Geplaatst

Ik ben een begnnend PHP programmeur en heb de volgende vraag. Ik zou graag met PHP een GPX (My Founds) willen lezen en zo een web pagina maken. Dus niet met een maar met PHP code. Uiteraard heb ik het forum afgezocht maar het enige dat (heel erg)in de buurt kwam is een berichtje uit 2006. Hier kom ik een heel eind mee maar.... De belangrijkste data (longitude en latitude) krijg ik niet uit het gpx bestand. Tot zover heb ik onderstaand script( met dank aan Boswijk Posse en GPSGek).

blabla

Het zal vast iets kleins zijn maar ik zie het niet meer. Wie kan me helpen?

 

Ik lees ze uit met .asp.

Ik heb hetzelfde probleem, dit komt doordat de waarden tussen quootjes staan.

asp denkt dan dat het het einde van de regel is.

Moet hiervoor nog een 'omleiding' bedenken.

Kijk maar in de .gpx file, dan zie je het zo.

Geplaatst

Even in een GPX bestand gekeken, de lat en lon zijn attributes:

  <wpt lat="52.158683" lon="6.2343">

Ik heb geen PHP interpreter bij de hand, maar

        $tlon = (string)$twpt->lon; // longitude 
       $tlat = $twpt->lat; // latitude 

veranderen in

        $tlon = $twpt['lon']; // longitude 
       $tlat = $twpt['lat']; // latitude 

zou moeten helpen.

 

Dat is het!!! Bedankt!

Ik kan weer verder knutselen.

  • 2 months later...
Geplaatst

Ik heb de bovenstaande vraag/discussie met intresse gelezen, maar ik heb (bij hetzelfde onderwerp) nog een andere vraag:

Is het mogelijk om met alleen het GC-nummer (en een Premium Member account natuurlijk), de bijbehorende GPX-file

automatisch op te halen bij geocaching.com ?

 

Ik zoek naar een mogelijkheid om, na het ingeven van diverse GC-nummers, mijn MySQL-database automatisch te vullen met de

data van de betreffende caches. Op mijn PDA haalt een van de tools eerst alle caches-nummers op die in de buurt van een

bepaalde coordinaat liggen. Vervolgens worden alle bijbehorende GPX-files opgehaald en deze data wordt in de lokale

database gestopt. Ik wil nu graag datzelfde op een Windows of Linux machine voor mijn eigen database à là GSAK.

 

Ik gebruik low-level Apache, PHP en MySQL (en evt. Perl).

 

Alvast bedankt, Starting2walk.

Geplaatst

Of het kan? Ja, absoluut, want als je browser dat bestand kan ophalen dan kan PHP dat ook. Of het makkelijk is dat is een tweede vraag.

 

Wat je zult moeten doen is een POST request naar de geocaching server met waarschijnlijk in een cookie je sessie token. Deze kun je verkrijgen door PHP eerst te laten inloggen met jouw gebruikersnaam/wachtwoord via een POST request op de inlogpagina. De specifieke detail kan ik je nu niet vertellen, maar zet eens een HTTP sniffer aan of bekijk de broncode van een cachepagina om erachter te komen hoe je browser het doet.

 

Volgens mij is het echter niet nodig. Kun je dat wat je wilt niet veel simpeler bereiken met een pocket query? Daarmee kun je simpel zoeken op alle caches in een straal rondom een coordinaat en dan krijg je ze netjes in een GPX bestand die je in de database kunt laden. Klaar is starting2walk!

Geplaatst

Ik begrijp dat de pocket queries een optie zijn, maar waar ik naar zoek is een mogelijkheid om bij de cache-listings

die ik ooit gesaved heb op mijn memorystick, de bijbehorende GPX-files op te halen en verwerken in mijn lokale database

(automatisch natuurlijk). Het automatiseren van het voortraject is goed mogelijk, met het tweede deel heb ik

nog problemen .... :blush:

 

Ik zal eens kijken naar een "HTTP sniffer" om te zien hoe Groundspeak zelf de GPX-file ophaalt na het drukken van het

betreffende knopje op de listing pagina.

 

Bedankt !

Geplaatst

Ik weet niet hoeveel van die gpx betanden je zou willen gaan scrubben van .com

 

Maar hou je er rekening mee dat als je te grote hoeveelheden data (of op een duidelijk geautomatiseerde manier)aan gaat vragen bij .com je het risico loopt dat je account geblokkeerd wordt!

Geplaatst

Bedankt voor je bezorgdheid, maar ik praat voorlopig over enige tientallen caches.

 

In de toekomst zelfs maximaal slechts een paar per dag: alleen om mijn database up-to-date te houden

en opgeloste mysteries in mijn database bij te werken.

  • Onlangs hier   0 leden

    • Er kijken geen geregistreerde gebruikers naar deze pagina.
×
×
  • Nieuwe aanmaken...