Afstand tussen verschillende coordinaten uitrekenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden je MBO of HBO ICT in ontvangst mogen nemen? Of ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een uitdagende werkgever in de regio van Tilburg zijn wij op zoek naar een ambitieuze back-end programmeur met affiniteit met MS Acess. Samen met een enthousiast team ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL, Maar affiniteit met MS Acess is nog belangrijker. Je bent sociaal naar klanten en flexibel ingesteld. Je denkt altijd in kansen en gaat graag de uitdaging aan. Verder

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Senior Java developer

Dit ga je doen Jouw taken als Senior Java Developer zijn: Het maken van strategische keuzes omtrent de nieuwbouw van applicaties; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java FX, JDBC, SQL, REST, Jax-RS, JSON, Maven, JUnit en Spring (boot)); Reviewen van code en feedback geven op collega developers; Analyseren en oplossen van bugs/incidenten door het onderlinge verband te kunnen leggen van verschillende losstaande systemen. Hier ga je werken Het bedrijf waar je als Senior Java Developer komt te werken staat internationaal bekend om het testen van bodemstructuren door middel van echotechnieken en beeldherkenning.

Bekijk vacature »

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

Bekijk vacature »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Dordrecht zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

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

27/05/2026 08:21:04
 
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.