Jump to content
  • 0

GPS coördinaten


HJK

Question

Posted

Ik ben in het bezit van een (ndederlandse) postcode/GPS-coördinaten database, die er als volgt uitziet: (vervolgens geimporteerd in een Filemaker database!)

 

"Postcode";x;y

"1011AA";121893;488058

"1011AB";121893;488058

"1011AC";121893;488058

"1011AD";122300;487682

"1011AG";122286;487376

"1011AH";122286;487376

"1011AJ";122286;487376

etc............................................

 

Nu wil ik graag een een coördinaat afkomstig van een GPS-module vergelijken met de database, zodat die automatisch de dichtbijzijnde postcode opzoekt.

Iemand hier uberhaupt ervaring mee?? Wie kan mij op weg helpen??

16 answers to this question

Recommended Posts

  • 0
Posted

Heb dat al een keer moeten doen voor kleurverschillen - dat was wel in 3D en niet in 2D zoals hier. In elk geval, hier is de formule voor de afstand tussen 2 punten p1(x1,y1) en p2(x2,y2):

||p1p2|| = SQR((x1-x2)^2 + (y1-y2)^2)

Hierbij is p1 het punt dat je wil afzetten ten opzichte van je hele databank met p2's.

 

Het slechte nieuws: in FileMaker taal komt je p1 in een global te staan, en wordt er door de hele databank op dat punt gewerkt. De kleinste waarde is de kleinste afstand, maar helaas is dat ook een unstored calculation.

 

Dus traag zoeken.

  • 0
Posted

Bedankt Peter, de formule werkt! Als je de waarde van x2 en y2 invult, wordt razendsnel de afstand berekend. Maar zoals je al noemde, als je gaat zoeken, dan duurt het zo'n minuut voordat de laagste waarde naar boven wordt getoverd. Ook sorteren en dan de bovenste (laagste) waarde duurt even lang.

 

Is er geen andere manier, om dit toch sneller te krijgen. bijv. 2 databases? Andere benadering? Wie helpt?

  • 0
Posted

En...... het blijft stil hier!

 

Ik zal de vraag anders stellen. hoe kun je op een snelle manier zoeken in een grote database (+/- 40.000 records) als je via een global een waarde invult en deze dan de dichtstbijzijnde waarde opzoekt?

  • 0
Posted
Ik zal de vraag anders stellen. hoe kun je op een snelle manier zoeken in een grote database (+/- 40.000 records) als je via een global een waarde invult en deze dan de dichtstbijzijnde waarde opzoekt?

 

Is het niet handiger om het bereik van de coordinaten uit te rekenen waarmee je vervolgens kunt zoeken?

 

x=123000...124000 en y= 234100... 234200

 

Zelf heb ik een database met deze RDS kaartcoordinaten (<> GPS!) en zo zoek ik of ik iets al in de database heb staan als ik iets op de topografische kaart ontdek. (Werkt ook een stuk sneller met leeftijden enzo.)

Overigens zou ik nog wel een goede toepassing voor genoemd bestand hebben! :-)

 

René

  • 0
Posted (edited)
Rgaros, ik begrijp niet goed wat je bedoelt. Kan jij of Peter, hier een voorbeeld of opzetje van geven?

 

Dat niet, maar ik wil het wel nader toelichten. Te beginnen met een ander voorbeeld.

 

Als je wilt zoeken op personen die 50 jaar of ouder zijn kan je twee dingen doen:

- je rekent per persoon de leeftijd uit aan de hand van de geboortedatum en de huidige datum (traag) of

- je bepaald welke geboortedatum de personen moeten hebben om aan die leeftijd te voldoen (snel(ler)).

 

Niet perse werkend voorbeeld van het laatste:

Ga naar Zoek Modus[]

Ga naar Layout ["Alle velden"]

Plak resultaat[geboortedatum, -berekening huidige datum min 50 jaar-]

Voer zoeken uit[]

Ga naar Layout[originele layout]

 

Aangezien geboortedatum ongetwijfeld een stored en indexed datumveld kan zijn: bloedspoed!

 

Hetzelfde principe voor de kaartcoordinaten. Je kan per postcode uitrekenen wat de afstand van de gegeven locatie tot de locatie van die postcode is. Maar zoals je gemerkt hebt is dat nogal traag.

Je kan ook de zoek criteria uitrekenen alhoewel het nadeel daarvan is dat je dan een vierkant gebied afzoekt en niet een cirkel.

Neem nu locatie x=117950 en y=506040

Aangezien elk cijfer hoger/lager een meter in de werkelijkheid is, kan je bijvoorbeeld zoeken naar alle locaties in een vierkant van 1000 bij 1000 meter met de gegeven locatie als middelpunt:

x=116950...118950 en

y=505040...507040

 

Afhankelijk van de afstanden tussen de postcodes en de gekozen vierkanten kan je dan wel meerdere mogelijke postcodes vinden*. Maar die kan je eventueel uitfilteren door wel de afstand te berekenen. De meeste postcodes heb je dan al aan de kant gezet.

Je kan ook het vierkant in stappen verkleinen en herhaald zoeken totdat je één locatie over houdt (nog snelheidswinst???).

 

* Kan ook met het berekenen van de afstand gebeuren als je precies tussen twee locaties van twee postcodes bent.

 

 

Overigens, de voorbeeld locatie kan je hier op de kaart zien:

 

Zie ook http://www.stelling-amsterdam.org/forten/spijkerboor/ en http://www.forten.info/catalogus/

Edited by Guest
  • 0
Posted

NATUURLIJK! Dat is de manier! Bedankt, ik ga er mee aan de slag.

Trouwens RD-cooridinaten zijn om te rekenen naar WGS84 Coordinaten(GPS) (die bijv uit een GPS ontvanger komen!). Ik ben nog op zoek naar deze omreken-formule, maar ik weet dat het kan. Er zijn Internetsite's waarbij je dit kan doen. Alleen de formule zelf kan ik er nog niet "uitvissen"

  • 0
Posted
NATUURLIJK! Dat is de manier! Bedankt, ik ga er mee aan de slag.

 

Alweer een tevreden klant van mijn blijkbaar onorthodoxe inzichten! :-)

Ben benieuwd hoeveel lezers nu even stilletjes het zoeken naar leeftijd gaan versnellen! :-))))

 

Trouwens RD-cooridinaten zijn om te rekenen naar WGS84 Coordinaten(GPS) (die bijv uit een GPS ontvanger komen!). Ik ben nog op zoek naar deze omreken-formule, maar ik weet dat het kan. Er zijn Internetsite's waarbij je dit kan doen. Alleen de formule zelf kan ik er nog niet "uitvissen"

 

Omrekenen is mij bekend. Wil ik ook nog een keertje gaan doen in FM maar heeft een lage prioriteit. Mocht jij er eerder aan toekomen dan houd ik me aanbevolen en wil ik ook best mee te denken om het te optimaliseren.

Wat betreft omrekenen, zie ook 'Int. Links' op http://www.xs4all.nl/~estevenh/geonet/

  • 0
Posted

Blijkbaar geen wiskundeknobbels onder ons.

 

Weet iemand hoe je RD-coordinaten kunt omzetten naar WGS84? (GPS)

Zie vorige repleys.

  • 0
Posted
Blijkbaar geen wiskundeknobbels onder ons.

 

Weet iemand hoe je RD-coordinaten kunt omzetten naar WGS84? (GPS)

Zie vorige repleys.

 

De noodzaak is enige tijd geleden door Google Earth ontstaan. Het omrekenen van RD naar WGS84 is me gelukt in FM en PHP.

Als je nog interesse hebt hoor ik het wel.

 

René

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...