Google Maps Store Locator

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mirak, 22. Mai 2013 .

Schlagworte:
  1. 22. Mai 2013
    Hey Leute

    Ich bin gerade dabei einen Store Locator mit Hilfe von Google Maps zu erstellen. Dabei habe ich ich mich 1:1 an dieses Tutorial gehalten: Creating a Store Locator with PHP, MySQL & Google Maps - Google Maps API — Google Developers

    Mit den Beispieladresse von Google (alle in Amerika) bekomme ich es auch hin. Leider lässt sich das ganze nicht auf deutsche Adressen übertragen.

    Kennst sich damit einer aus?

    Danke, Gruß
     
  2. 22. Mai 2013
    AW: Google Maps Store Locator

    Warum lässt sich das nicht auf Deutsche Adressen übertragen? Soweit ich das gesehen habe geht alles per Lat Lon Koordinaten und ist damit Länder unabhängig.
     
  3. 22. Mai 2013
    AW: Google Maps Store Locator

    Wenn ich das nur wüsste. Wenn die Datenbank richtig angelegt habe, dann sagt mir das Tutorial, dass ich per $_GET-Parameter alles testen soll.

    Also gebe ich den Browser rein http://www.xxx.de/test.php?lat=37&lng=-122&radius=25

    Damit bekomme ich alle Stores in einem Radius von 25 Millen um den Punkt lat 37 und long -122 (das liegt an der amerikanischen Westküste).

    Code:
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <markers>
    <marker name="Giorgio's" address="1445 Foxworthy Ave, San Jose, CA" lat="37.274647" lng="-121.892891" distance="19.87341148022"/>
    <marker name="Round Table Pizza" address="4302 Moorpark Ave, San Jose, CA" lat="37.315903" lng="-121.977928" distance="21.8619290343098"/>
    <marker name="Pizza Antica" address="334 Santana Row # 1065, San Jose, CA" lat="37.321793" lng="-121.947739" distance="22.420556467288"/>
    <marker name="Tony & Alba's Pizza & Pasta" address="3137 Stevens Creek Blvd, San Jose, CA" lat="37.323296" lng="-121.951645" distance="22.4970787836514"/>
    <marker name=„House of Pizza" address="527 S Almaden Ave, San Jose, CA" lat="37.326351" lng="-121.888168" distance="23.3757777716582"/>
    ...
    </markers>
    Wenn die Aufgabe hier klappt, dann klappt sie auf später auf der Karte.

    Jetzt füge ich meiner Datenbank ein paar neue Datensätze hinzu im genau gleichen Stiel wie die Beispielhaften.

    Alt:

    Jasper Pizza Place
    402 Connaught Dr, Jasper, AB
    52.879086
    -118.079315

    Neu:

    Uhr 6
    München Leopoldstrasse 21
    48.157547
    11.58430

    Man sieht, der Stil ist identisch. Außerdem sind ja nur lat und long wichtig.

    Jetzt gebe ich wieder in den Browser und gebe ein http://www.xxx.de/test/test?lat=48&lng=11&radius=50

    Nach meinem Verständnis müsste er mir jetzt dieses Uhr 6 Geschäft anzeigen, weil innerhalb eines 50 Meilenradius um den Punkt lat 48 und long 11 liegt (München Innenstadt). Tut er aber nicht und er bringt diesen Fehler:

    Code:
    This page contains the following errors:
    
    error on line 2 at column 1: Extra content at the end of the document
    Below is a rendering of the page up to the first error.
    PHP:
    <? php
    require( "phpsqlsearch_dbinfo.php" );

    // Get parameters from URL
    $center_lat  $_GET [ "lat" ];
    $center_lng  $_GET [ "lng" ];
    $radius  $_GET [ "radius" ];

    // Start XML file, create parent node
    $dom  = new  DOMDocument ( "1.0" );
    $node  $dom -> createElement ( "markers" );
    $parnode  $dom -> appendChild ( $node );

    // Opens a connection to a mySQL server
    $connection = mysql_connect  ( localhost $username $password );
    if (!
    $connection ) {
      die(
    "Not connected : "  mysql_error ());
    }

    // Set the active mySQL database
    $db_selected  mysql_select_db ( $database $connection );
    if (!
    $db_selected ) {
      die (
    "Can\'t use db : "  mysql_error ());
    }

    // Search the rows in the markers table
    $query  sprintf ( "SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance" ,
      
    mysql_real_escape_string ( $center_lat ),
      
    mysql_real_escape_string ( $center_lng ),
      
    mysql_real_escape_string ( $center_lat ),
      
    mysql_real_escape_string ( $radius ));
    $result  mysql_query ( $query );

    $result  mysql_query ( $query );
    if (!
    $result ) {
      die(
    "Invalid query: "  mysql_error ());
    }

    header ( "Content-type: text/xml" );

    // Iterate through the rows, adding XML nodes for each
    while ( $row  = @ mysql_fetch_assoc ( $result )){
      
    $node  $dom -> createElement ( "marker" );
      
    $newnode  $parnode -> appendChild ( $node );
      
    $newnode -> setAttribute ( "name" $row [ 'name' ]);
      
    $newnode -> setAttribute ( "address" $row [ 'address' ]);
      
    $newnode -> setAttribute ( "lat" $row [ 'lat' ]);
      
    $newnode -> setAttribute ( "lng" $row [ 'lng' ]);
      
    $newnode -> setAttribute ( "distance" $row [ 'distance' ]);
    }

    echo 
    $dom -> saveXML ();
    ?>
    Hier habe ich gar nichts geändert.


    Ich verzweifle :/

    Danke, Gruß
     
  4. 23. Mai 2013
    AW: Google Maps Store Locator

    Das scheint ein XML Problem zu sein.
    Gib den Inhalt mal damit aus:
    Code:
    header("Content-type: text/plain");
    Wobei ich auch schon ein ein Problem mit umlauten gedacht habe, also wenn das nicht hilft, dann mal München gegen Muenchen austauschen.
     
    1 Person gefällt das.
  5. 23. Mai 2013
    AW: Google Maps Store Locator

    Es lag an den Umlauten... ich habe mich so auf die ü konsentiert, dass ich ein ß übersehen habe

    Vielen Dank BW ist raus (wenn man das heute hier noch so sagst )
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.