Google API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander hueting

sander hueting

26/04/2008 09:28:00
Quote Anchor link
Het volgende levert nogal wat vragen op
http://www.phpinsider.com/php/code/GoogleMapAPI/

Met dit schript wil ik aan de hand van een volledig adres een marker plaatsen. Waar die de coordinaten vandaan haalt, denk van Google maar waarom dat CVS bestand?

Hoe werkt dit, SSH ofzo?
ANONYMOUS CVS: (leave password empty)
cvs -d :pserver:[email protected]:/export/CVS login
cvs -d :pserver:[email protected]:/export/CVS checkout GoogleMapAPI

Waar laat ik de database naam als naam van tabel GEOCODES is?
// setup database for geocode caching
$map->setDSN('mysql://USER:PASS@localhost/GEOCODES');
 
PHP hulp

PHP hulp

28/04/2024 06:34:03
 
Jelmer -

Jelmer -

26/04/2008 09:37:00
Quote Anchor link
CVS is een repository, een systeem waarin je bestanden opslaat waarbij de versies worden bijgehouden. Tegenwoordig wordt vaak SVN gebruikt, vroeger was CVS populair. Maar je kan ook gewoon dat bestand downloaden, wss zitten daar ongeveer dezelfde bestanden in.

Dat met die DSN is een beetje onduidelijk. Maar als je in de code kijkt zie je dat GEOCODES de databasenaam is. De tabelnaam zit in de klasse zelf als $this->_db_cache_table, standaard ook GEOCODES. Je hebt trouwens wel PEAR::DB nodig.
 
Sander hueting

sander hueting

26/04/2008 10:00:00
Quote Anchor link
Met het volgende kun je aan de hand van een database met adresgegevens de database aanvullen met de lat en lng welke nodig zijn voor Google Maps

http://code.google.com/support/bin/answer.py?answer=80200&topic=11364

Groet Sander
 
Jan Koehoorn

Jan Koehoorn

26/04/2008 10:12:00
Quote Anchor link
Voorbeeldje in JS:
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
function show_address (address) {
    var geocoder = new GClientGeocoder ();
    if (geocoder) {
        geocoder.getLatLng (address, function(point) {
            if (!point) {
                // alert(address + " niet gevonden op de kaart");
                map.setCenter(new GLatLng(52.638063, 4.817505), 8);
            }
            else {
                map.setCenter (point, 13);
                var marker = new GMarker (point);
                map.addOverlay (marker);
                // alert (marker.getLatLng ());
                var ll = marker.getLatLng ();
            }
        });
    }
}
 
Sander hueting

sander hueting

26/04/2008 16:03:00
Quote Anchor link
http://code.google.com/support/bin/answer.py?answer=80200&topic=11364

Inmiddels heb ik de Google Maps API aan de praat

Echter blijkt dat de lat en lng die google aangeeft op basis van het adres* niet 100% te kloppen? Alsof die ze niet herkent terwilj zoeken met hetzelfde adres http://maps.google.nl/ staat die wel op juiste plek

* straat nr postcode plaats

Verder gezocht:

Coordinaten worden geplit mbv onderstaande code uit een gegenereerde URL zie onderaan

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
$base_url
= "http://" . MAPS_HOST . "/maps/geo?output=xml" . "&key=" . KEY;

// Iterate through the rows, geocoding each address
while ($row = @mysql_fetch_assoc($result)) {
  $geocode_pending = true;

  while ($geocode_pending) {
    $address = $row['adres'].' '.$row['postcode'].' '.$row['plaats'].' Nederland';
    $id = $row["id"];
    $request_url = $base_url . "&q=" . urlencode($address);
    $xml = simplexml_load_file($request_url) or die("url not loading");

    $status = $xml->Response->Status->code;
    if (strcmp($status, "200") == 0) {
      // Successful geocode
      $geocode_pending = false;
      $coordinates = $xml->Response->Placemark->Point->coordinates;
      $coordinatesSplit = split(",", $coordinates);
      // Format: Longitude, Latitude, Altitude
      $lat = $coordinatesSplit[1];
      $lng = $coordinatesSplit[0];
?>


http://maps.google.com/maps/geo?output=xml&key=ABQIAAAAXF3KQ_dxQMzJAGf66qqC7xTTnVMZl1-jekZ9pm9ROI2cVKeP0hS0oXJHhtdpfUx5Iq5_JrFPkP2L2w&q=Eemnesserweg+1+1+1221CS+Hilversum

resultaat:

Eemnesserweg 1 1 1221CS Hilversum200geocodeEemnesserweg 1, 1221 Hilversum, Hilversum (Noord-Holland), NetherlandsNLNoord-HollandHilversumHilversumEemnesserweg 112215.184314,52.227788,0

Uitgelicht: (dit moet dus gesplitst worden)
112215.184314,52.227788,0
1 huisnr
1221 postcode
5.184314 lng
52.227788 lat
Gewijzigd op 01/01/1970 01:00:00 door sander hueting
 



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.