[PHP] Vacatures binnen aantal km opvragen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een vacaturebank. Dit werkt allemaal. Alleen, we willen zoeken naar vacatures, bijvoorbeeld Amsterdam en daar maximaal 10 km vandaan. Wat is een goede manier om dit te doen?

Ik heb gekeken naar Google Maps, maar elke vacature door een Google functie halen en tonen wanneer hij minder dan 10km is, lijkt mij niet de beste manier. Zijn hier betere oplossingen voor, of moet ik toch voor elke plaats de Google API aanspreken?

Acties:
  • 0 Henk 'm!

Verwijderd

Sla per vacature de geografische positie op, dus zoveel graden oosterlengte, zoveel graden noorderbreedte.

Als je vervolgens alle vacatures binnen een straal van een aantal kilometers wilt, zoek je waar het verschil in breedte in het kwadraat, plus het verschil in lengte in het kwadraat kleiner is dan het aantal kilometers / 40.000 * 360 in het kwadraat.

40.000 is de omtrek van de aarde in kilometers, 360 is de omtrek in het aantal graden.

Dit klopt niet helemaal precies gezien de kromming van de aarde, maar in een klein land als Nederland voldoet dit prima.

[ Voor 13% gewijzigd door Verwijderd op 08-11-2009 15:19 ]


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 06-09 16:59

CoolGamer

What is it? Dragons?

Je zou van te voren de locatie van de vacatures kunnen opslaan en dan vergelijken met de opgegeven locatie.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Tys
  • Registratie: Januari 2003
  • Laatst online: 17-09 19:37

Tys

Tjsa, als de Google API dit nu al voor je regelt, dan kun je dit toch eenmalig doen tijdens de plaatsing van de vacature en daarna in je eigen database opslaan (en dan vergelijken met de positie waar je het mee wilt vergelijken)?

[ Voor 17% gewijzigd door Tys op 08-11-2009 15:21 ]

My flight statistics: (444.803km in 120 flights) Next trips: Rome (Italy)


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Jammer dat je volgens de terms van de Google Maps API de gegevens niet mag opslaan alleen.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 01:47

DexterDee

I doubt, therefore I might be

Ik heb wel eens een dergelijke functie gemaakt, maar dat was op basis van postcodes. De wiskundige berekening kan zelfs geheel in SQL gemaakt worden voor een willekeurige straal.

Hou er alleen rekening mee dat databases met postcode / plaatsnaam naar geografische locaties ontzettend duur zijn. De google api is gratis, maar wel een externe afhankelijkheid. Stel dat daar een berekening de mis in gaat of er zit ergens een foutje in, dan moet je het Google laten fixen of accepteren dat het fout is. Dat is soms lastig uitleggen als het project voor een klant gemaakt wordt.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

Verwijderd

Cartman! schreef op zondag 08 november 2009 @ 16:29:
Jammer dat je volgens de terms van de Google Maps API de gegevens niet mag opslaan alleen.
Maarja, je mag ook niet 130 rijden op de snelweg in Nederland. ;)

Gok dat dit iets is wat ze er in hebben gezet voor bedrijven e.d. die hele databases hier mee vullen en verkopen of iets dergelijks? :) Of zou een "kleine" gebruiker het echt niet op mogen slaan in database om te gebruiken? :P

Acties:
  • 0 Henk 'm!

  • Reddol
  • Registratie: September 2008
  • Laatst online: 17-09 19:26
Kijk eens hiernaar:
[PHP] Afstand berekenen tussen coordinaten.
Topic dat ik een paar dagen geleden heb aangemaakt, het is me uiteindelijk gelukt:

Voor elke postcode die aangemaakt word alvast de Latitude en Longtitude in de DB zetten en via SQL de berekening doen inderdaad!

p.s. De coordinaten opvragen via google is heel simpel en snel te doen in PHP.
http://maps.google.com/maps/geo?q= Adres (postcode) &output=csv&key= Gratis Google maps api Key

[ Voor 23% gewijzigd door Reddol op 08-11-2009 17:44 ]

Als je het niet kan, laat het dan!


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Verwijderd schreef op zondag 08 november 2009 @ 17:34:
[...]

Maarja, je mag ook niet 130 rijden op de snelweg in Nederland. ;)

Gok dat dit iets is wat ze er in hebben gezet voor bedrijven e.d. die hele databases hier mee vullen en verkopen of iets dergelijks? :) Of zou een "kleine" gebruiker het echt niet op mogen slaan in database om te gebruiken? :P
Stukje professionaliteit ook denk ik van de developer. Ik zou het risico niet willen nemen voor een klant om met gejatte gegevens te werken. Dan licht je de klant in over wat de kosten zijn voor een "zoek op afstand"-feature en als ze dan teveel vinden dan gebeurt het niet, simpel.

Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 20:55
Bovendien zijn de gegevens van google ook niet heilig, onze gekochte bestanden zijn een stuk accurater.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

DexterDee schreef op zondag 08 november 2009 @ 16:42:
Hou er alleen rekening mee dat databases met postcode / plaatsnaam naar geografische locaties ontzettend duur zijn.
http://kvdb.net/projects/6pp/ :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Wij vullen adhoc een database met berekende afstanden van postcode tot combinaties.

Bij een request wordt eerst gekeken of de postcode combinatie in de database aanwezig is, zonee dan wordt een API aangeroepen (Google, Webservices.nl, etc.) die de geocoordinaten ophaalt bij de postcodes en dan wordt de database aangevuld.

Als de database prefilled is (wat kan) met een aangekochte database dan heb je dus nooit die API calls.

Als er facetnavigatie bij komt kijken doen we eerst een filter op de vacatures, en daarna pas een filter op de straal + postcode.

Op basis van de geocoordinaten kun je zelf een afstand hemelsbreed berekenen. Er zijn ook partijen die echt de route gaan berekenen, maar dat is nog wat complexer en kun je niet zo simpel even adhoc doen. :)

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
gorgi_19, staat er nu al eens vast dan dat al die gegevens die erin zitten 100% betrouwbaar en enkel via legale bronnen binnengekomen zijn? Het lijkt allemaal erg leuk maar ik geloof nooit dat ie zo volledig kan zijn als postcode.nl/webservices.nl dat heeft.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Cartman! schreef op maandag 09 november 2009 @ 11:43:
gorgi_19, staat er nu al eens vast dan dat al die gegevens die erin zitten 100% betrouwbaar en enkel via legale bronnen binnengekomen zijn? Het lijkt allemaal erg leuk maar ik geloof nooit dat ie zo volledig kan zijn als postcode.nl/webservices.nl dat heeft.
Mja... Als je Google Maps overweegt ivm kosten, dan kan je ook die opensource variant nemen. Is die 100% betrouwbaar? Nee. Is die betrouwbaar genoeg om bijvoorbeeld op basis van 4PP een afstand te berekenen? Ik denk het wel, maar dat is ieder die daar een eigen afweging voor moet maken.

Wil je echt de kwaliteit hebben met meer zekerheid, dan moet je de kwartaalupdates hebben van postcode.nl, maar dan moet je ook bereid zijn om die paar duizend euro per jaar aan abonnementskosten te betalen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Cartman! schreef op maandag 09 november 2009 @ 11:43:
gorgi_19, staat er nu al eens vast dan dat al die gegevens die erin zitten 100% betrouwbaar en enkel via legale bronnen binnengekomen zijn? Het lijkt allemaal erg leuk maar ik geloof nooit dat ie zo volledig kan zijn als postcode.nl/webservices.nl dat heeft.
offtopic:
Nee dat staat niet vast, en zal op deze manier ook nooit gegarandeerd kunnen worden. Het is 'user-generated' content, en dus niet 100% betrouwbaar, en ook aan de legaliteit kan getwijfeld worden ( http://kvdb.net/projects/6pp/faq#legaal ).

Als ze op illegale content gewezen worden zeggen ze wel dat ze het verwijderen. Maar als eindgebruiker heb je geen garanties, en daarom zou ik een dergelijke database niet zo snel inzetten voor commerciële doeleinden.

Maar laten we daar niet verder over discussiëren, want dat is al eerder gedaan, en hoort in ieder geval niet hier thuis ( [PHP] Postcode/Huisnummer Project 6PP >> Gratis PC-check )

[ Voor 11% gewijzigd door Woy op 09-11-2009 12:04 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Google is crappy voor produktie toepassingen, tenzij je de uitgebreide betaalde licentie af neemt.

Voor elke zoekactie moet je namelijk separaat de api aanspreken, en als je die dus meerdere keren per dag / per uur aanspreekt krijg je gewoon een NULL terug en ben je een tijdje gebanned vanwege teveel requests. Dat is niet erg handig in produktie situaties.

De 4PP hebben we ook wel eens toegepast, en hij is completer dan je zou denken. Ook postbussen zijn opgenomen en die krijg je normaliter niet mee.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Een eenmalige aanschaf van een 4PP-database kost je maar 300e (eenmalig of per jaar update is een andere discussie), als je klant lastig doet dan calculeer je gewoon een paar uur meer 'werk' in en koop je daarvan de legale database :+
Pagina: 1