Afstand tussen verschillende coordinaten uitrekenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Gezocht: Ervaren VB6 developer met C# ambitie!

Bedrijfsomschrijving Dit bedrijf is een vooraanstaande softwareleverancier die gespecialiseerd is in het ontwikkelen van software pakketten voor autoschade herstel bedrijven. De software wordt gebruikt door meer dan de helft van alle autoschade herstel bedrijven in Nederland. Het team van professionals is op zoek naar getalenteerde collega developers die hun vaardigheden willen inzetten om het bedrijf te laten groeien. Functieomschrijving Voor dit bedrijf zoek ik een ervaren VB6 / VB.NET developer met interesse om op termijn verder te gaan in C#. In deze functie ben je verantwoordelijk voor het onderhouden van de bestaande softwarepakketten. Een deel van de code is nog

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Software Developer Mendix / Maatschappelijk Betrok

Dit ga je doen Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Werken met Scrum methodiek; Ontwikkelen van vooruitstrevende oplossingen; Meedenken over nieuwe applicaties en ontwikkelingen; On the job eigen maken van de Mendix omgeving. Hier ga je werken Deze dynamische en snelgroeiende organisatie begeeft zich in de recyclingbranche. Zij nemen op duurzame en efficiënte manier de recycling op zich. Vanwege hun snelle groei zijn zij op zoek naar een young professional die zich graag wilt ontwikkelen als Mendix Developer. Je komt te werken binnen een IT team van +/- 15 medewerkers. Het huidige ‘vaste’

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »
A Kuijk

A Kuijk

20/11/2012 00:11:37
Quote Anchor link
Hallo,

Ik heb een database met alle plaatsnamen inclusief coordinaten van Nederland.

Elke plaats heeft zijn eigen webpagina. Op deze webpagina wil ik de 10 dichtstbij gelegen steden inclusief afstand opsommen.

Bijvoorbeeld: We bekijken de pagina van Den Haag. Dan moeten de 10 dichstbij gelegen steden/dorpen waarschijnlijk Rijswijk, Voorburg, Delft, etc zijn.

Ik heb onderstaand zelf kunnen uitzoeken. Zou iemand mij kunnen helpen om de juiste query te maken inclusief ORDER BY ASC en LIMIT 10. ($query = "SELECT * FROM db LIMIT 10";)

Ik hoor graag of jullie meer uitleg nodig hebben.

Groeten Tony

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//connect

$query = "SELECT * FROM db WHERE name = '" . mysql_real_escape_string( name ) . "'";
        
    $query = mysql_query($query);
    $numrows = mysql_num_rows($query);
    if ($numrows > 0){
    
    while ($row = mysql_fetch_assoc($query)){

//dit zijn de begin coordinaten
    $original_lat = $row['lat'];
    $original_long = $row['long'];
    }}

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {
    $theta = $longitude1 - $longitude2;
    $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
    $miles = acos($miles);
    $miles = rad2deg($miles);
    $miles = $miles * 60 * 1.1515;
    $feet = $miles * 5280;
    $yards = $feet / 3;
    $kilometers = $miles * 1.609344;
    $meters = $kilometers * 1000;
    return compact('kilometers');
}


//connect

//hier krijgen we 10 results zonder de juiste ORDER BY...

$query = "SELECT * FROM db LIMIT 10";

    $query = mysql_query($query);
    $numrows = mysql_num_rows($query);
    if ($numrows > 0){
    
    while ($row = mysql_fetch_assoc($query)){
        $destination_lat = $row['lat'];
        $destination_long = $row['long'];
        $plaatsnaam = $row['plaatsnaam'];


$point1 = array('lat' => $original_lat, 'long' => $original_long);
$point2 = array('lat' => $destination_lat, 'long' => $destination_long);
$distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($distance as $unit => $value) {
    echo $plaatsnaam. ': '.number_format($value,1).'<br />';
}
    }}

    
    
?>


Toevoeging op 20/11/2012 20:31:33:

Kan niemand mij helpen of heb ik mijn vraag niet goed uitgelegd?
 
PHP hulp

PHP hulp

22/11/2024 14:54:36
 
A Kuijk

A Kuijk

24/11/2012 13:00:03
 
Henk Verhoeven

Henk Verhoeven

25/11/2012 17:16:41
Quote Anchor link
Sorry, ik had eerder willen reageren, maar ik moest eerst een profiel maken en dat kwam er zo snel niet van.

Zijn die queries van stack overflow vooruit te branden? Ik zou namelijk denken dat de database voor alle steden/dorpen in heel nederland eerst een afstand gaat uitrekenen en daarna pas kan selecteren. Dat leek me nogal traag, maar misschien was ik te pessimistich, dan kun je deze reactie negeren.

Mijn idee voor een snellere zoekfunctie was om eerst alle steden/derpen binnen bepaalde begrenzingen op te vragen, bijvoorbeeld overeenkomstig een gebied van (ruim) 5 kilometer in noord, oost, zuid, en westelijke richting. Daarvan kun je de grenzen voor longitude en latitude in PHP uitrekenen (kom ik op terug). Als je in de database eerst een gecombineerde index aanmaakt op longitude en latitude zal een query die daar met AND en letterlijke getallen op selecteert heel snel gaan.

Nu je die query van stack overflow toch hebt is het het simpelst om die aan te passen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$query = "SELECT *,
( 3959 * acos( cos( radians('$slatitude') ) *
cos( radians( latitude ) ) *
cos( radians( longitude ) -
radians('$slongitude') ) +
sin( radians('$slatitude') ) *
sin( radians( latitude ) ) ) )
AS distance
FROM cities
WHERE (longitude BETWEEN '$longMin' AND '$longMax')
    AND (latitude BETWEEN '$latMin' AND '$latMax')
ORDER BY distance ASC LIMIT 0, 10


Stel dat dat 5 rows oplevert. Dan vergroot je het gebied aan elke kant, bijvoorbeeld met nog eens vijf kilometer.

Stel dat de 10e row dan een afstand heeft van 11 kilometer. Dan zou het kunnen zijn dat er buiten het gebied dat je geselecteerd hebt nog steden/dorpen liggen die dichterbij zijn. Vergroot dan het gebied met nog eens 1 kilometer in elke richting.

Nu kun je er zeker van zijn dat er geen steden/dorpen meer in de database staan die op een kortere afstand liggen dan 11 kilometer. De 10e row lag al op 11 kilometer dus de eerste 10 rows zijn het antwoord.

Wat misschien nog wel wat hoofdbrekens kost is de begrenzingen ($longMin etc) te bepalen van een 'vierkant' van bijvoorbeeld vijf kilometer in de vier windrichtingen. De begrenzing geeft immers een soort van trapezium waarvan de evenwijdige zijden ook nog een beetje krom zijn. Gelukkig is nederland vrij klein, en ligt het niet al te noordelijk. Het moet daarom wel te doen zijn om een vermenigvuldigingsfactor te vinden waarmee je grenzen van long en lat kunt bepalen van een gebied dat net iets groter is, zodat een circel met een straal van bijvoorbeeld 5 kilometers er altijd helemaal binnen valt, waar ook in nederland. Dan krijgt de database misschien een paar steden/dorpen extra om te sorteren, maar veel meer dan pak weg 30 zullen het er denk ik niet worden, zodat je toch wel snel resultaat hebt.

Succes!
Gewijzigd op 26/11/2012 11:23:14 door Henk Verhoeven
 
A Kuijk

A Kuijk

26/11/2012 21:13:16
Quote Anchor link
Momenteel draait de query wel prima maar ik kan me voorstellen dat de query langzamer wordt naar mate mijn database met coordinaten toe neemt. Bedankt voor je suggestie. Ik ga ook jouw query uitproberen en testen of deze beter werkt.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/12/2012 14:06:58
Quote Anchor link
In theorie heeft Henk gelijk, maar in de praktijk is het zo dat het aantal plaatsen in Nederland ca 2700 is.
Ik heb de formule die jij gebruikt in een Mysql functie staan, en daarmee duurt de query 0.07 sec.
Ik vind dat verwaarloosbaar binnen web toepassingen.

Het wordt iets anders als je bijvoorbeeld met een postcode tabel moet gaan werken, en dan een selectie binnen een bepaalde afstand wilt hebben, dan kan je beter zoals Henk aangeeft de selectie beperken door een vierkant over de selectie te leggen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.