#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ß + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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ß + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 ) + Multi-Zitat Zitieren