Dichtsbijzijnde locatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dirk Schraven

Dirk Schraven

21/10/2011 14:36:19
Quote Anchor link
Hallo toekomstige mensen die mij misschien kunnen helpen,

Ik ben nog vrij nieuw met PHP en ben nu bezig met een site die de dichtstbijzijnde voetbalclub zoekt op basis van je locatie (is een opdracht voor school). Ik heb een database table aangemaakt met daarin de club en een longitude en een latitude van het adres van die club.

En eerlijk gezegd weet ik niet waar te beginnen, dus iedere hulp is welkom.
 
PHP hulp

PHP hulp

10/01/2025 08:00:02
 
Jacco Brandt

Jacco Brandt

21/10/2011 15:31:05
Quote Anchor link
Je kunt de hemelsbrede afstand berekenen dmv de stelling van pythagoras.
In de wiskunde werkt dat zo:
SQRT((top(EigenLatitude, AndereLatitude) - floor(EigenLatitude, AndereLatitude))^2 + (top(EigenLongitude, AndereLongitude) - floor(EigenLongitude, AndereLongitude))^2)

Probeer zoiets:
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
<?php

$latitude
  = intval($_POST['latitide']);
$longitide = intval($_POST['longitude']);

mysql_query("
   SELECT
      SQRT
      (
         POW(
             MAX($latitude, `latitude`) - MIN($latitude, `latitude`)
         , 2)
         +
         POW (
            MAX($longitide, `longitude`) - MIN($longitide, `longitude`)
         , 2)
        
      ) AS `position`
   FROM `clubs`
   ORDER BY `position` ASC
   LIMIT 1
"
);
?>

Note: Zelf beveiligen/variabelen uit string halen.
Gewijzigd op 21/10/2011 15:32:37 door Jacco Brandt
 
PHP Scripter

PHP Scripter

21/10/2011 15:48:05
Quote Anchor link
EDIT: verkeerd gelezen
Gewijzigd op 21/10/2011 15:49:03 door PHP Scripter
 
Dirk Schraven

Dirk Schraven

21/10/2011 15:51:23
Quote Anchor link
Hier ga ik het eens mee proberen. Ik had inderdaad al een formule geformuleerd voor de berekening, die erg op deze leek, maar ik wist niet hoe ik dit dan als php moest invoeren.

Bedankt alvast!
 
Jacco Brandt

Jacco Brandt

21/10/2011 15:54:06
Quote Anchor link
Geen dank,

laat alsjeblieft horen of ik goed heb nagedacht. Ik ben namelijk zelf ook nieuwsgierig :)

Succes!
 
Dirk Schraven

Dirk Schraven

21/10/2011 15:55:10
Quote Anchor link
Gaat nog even duren, want heb waar ik nu ben geen toegang tot de files ;)
 
Dirk Schraven

Dirk Schraven

26/10/2011 15:44:08
Quote Anchor link
Jammer maar zo gemakkelijk was het niet helemaal. Ik ben nu een andere manier aan het proberen. Ik heb nu in de database 5 clubs met daarbij de longitude en de latitude. Daarbij heb ik deze code:
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
<?php
<table>
    [
code]<?php include ('connect.php');
    $latitude  = 51.0009783;
    $longitude = 5.864245;

    $data = mysql_query('SELECT * FROM clubs');
    while ($dat = mysql_fetch_assoc($data)){
    $long = $dat['long'];
    $lat = $dat['lat'];
    ?>

        <tr>
            <td>
            <?php echo $dat['long']; ?>
            
                <?php $afstand1 = $longitude - $dat['long']; ?>
                <strong><?php echo $afstand1 ?></strong>
                </td>
            
                <td>
        <?php echo $dat['lat']; ?>
            
                <?php $afstand2 = $latitude - $dat['lat']; ?>
                <strong><?php echo $afstand2 ?></strong>
                </td>
                <td>
                <?php
            $positie
= SQRT(POW($afstand1,2)+POW($afstand2,2))
        ?>

                <?php echo $positie; ?>
            </td>
        </tr>
    <?php
    }
    ?>

    </table>
?>

Dit levert me een tabel op met in de laatste kolom alle afstanden. Is er een manier om van deze afstanden de kleinste te selecteren?
Gewijzigd op 26/10/2011 15:44:49 door Dirk Schraven
 
Obelix Idefix

Obelix Idefix

26/10/2011 15:46:53
Quote Anchor link
ORDER BY
en
limit ??
 
Dirk Schraven

Dirk Schraven

26/10/2011 15:48:09
Quote Anchor link
Ja zoiets dacht ik ook maar hoe maak ik daar een query van?
 



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.