Google api gebruiken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Krist Ensing

Krist Ensing

20/08/2013 16:23:06
Quote Anchor link
Hallo,

Ik ben met een website bezig, waarbij ik ingeschreven leden wil kunnen zoeken die op een bepaalde afstand van een ingegeven plaats wonen. Nu heb ik begrepen dat ik hiervoor de google maps api zou kunnen gebruiken, maar ik heb geen idee hoe ik dit kan integreren.
Heeft iemand hierin ervaring die mij hiermee kan helpen?

Alvast bedankt!
 
PHP hulp

PHP hulp

15/05/2024 23:32:44
 
Ramon van Dongen

Ramon van Dongen

20/08/2013 16:29:57
Quote Anchor link
Hallo Krist,

Ik heb de Google Maps Api daarvoor op de volgende manier ooit eens gebruikt/aangepast:

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
$adres1
= 'Adres,Plaatsnaam,Land';
$adres2 = 'Adres,Plaatsnaam,Land';

$link = "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=".$adres1."&destinations=".$adres2."&mode=driving&language=nl-NL&sensor=false";

function
objectsIntoArray($arrObjData, $arrSkipIndices = array())
{

    $arrData = array();
  
    // if input is object, convert into array
    if (is_object($arrObjData)) {
        $arrObjData = get_object_vars($arrObjData);
    }

  
    if (is_array($arrObjData)) {
        foreach ($arrObjData as $index => $value) {
            if (is_object($value) || is_array($value)) {
                $value = objectsIntoArray($value, $arrSkipIndices); // recursive call
            }
            if (in_array($index, $arrSkipIndices)) {
                continue;
            }

            $arrData[$index] = $value;
        }
    }

    return $arrData;
}




$xmlUrl = $link; // XML feed file/URL
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
$afstand = ($arrXml['row']['element']['distance']['value']/1000);
?>
 
Krist Ensing

Krist Ensing

20/08/2013 16:37:40
Quote Anchor link
@Ramon: Wat doet dit precies?
 
Ramon van Dongen

Ramon van Dongen

20/08/2013 16:44:13
Quote Anchor link
In $adres1 en $adres2 geef je 2 adressen in, uiteindelijk heb je variabele $afstand waar de afstand in staat.
 
Krist Ensing

Krist Ensing

20/08/2013 16:55:23
Quote Anchor link
Bedankt, maar dat is niet wat ik zoek. Ik zoek een mogelijkheid om een plaatsnaam en een afstand in te voeren en dan terug te krijgen welke plaatsen allemaal binnen de straal van die afstand van de opgegeven plaats liggen.

Bijvoorbeeld: Ik zoek alle leden die wonen in een straal van 30 km van Deventer
 
Kris Peeters

Kris Peeters

20/08/2013 17:09:10
Quote Anchor link
Ik heb daar ervaring mee.

Een aantal dingen:
- Als je Google maps API gebruikt, verwacht Google dat je die kaart ook effectief op je site zet. Geen bezwaren?

Krist Ensing op 20/08/2013 16:55:23:
Bijvoorbeeld: Ik zoek alle leden die wonen in een straal van 30 km van Deventer

- Okay, dus een zoek <input>; waar men een adres kan zoeken
- Heb je die informatie? Staat er bij elk lid een breedte en lengte (lat en lng) in de database? Of staat daar enkel een adres of zo?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 17:15:36
Quote Anchor link
Hallo Krist,

ik heb twee dagen geleden een class geschreven die met behulp van CURL en de google API de afstand berekend tussen adres A en B. Hij staat in dit topic.

Ik denk niet dat het mogelijk is om de plaatsen binnen een straal op te vragen bij Google. Als dat wel kan dan hoor ik graag waar dat kan. Maar wat je in ieder geval wel kan doen is tussen alle leden hun afstand berekenen en dat in een mysql tabel zetten.

je zou bijvoorbeeld een tabel kunnen maken met drie kolommen:
-userId1
-userId2
-afstand
Daarbij zou ik dan de userId met het laagste nummer altijd in userId1 zetten om dubbele entries te voorkomen.
 



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.