Zum Inhalt springen

locator klappt nicht mehr

Erstellt am 11. März 2013 · 17 Antworten · letzte Antwort am 26. März 2013

Tags: Frage

shaak ·

Hallo,

ich hab ein Problem mit der locator Extension.

Von einen auf den anderen Tag klappt die Extension nicht mehr. Gibt man im FE z. B. seine PLZ ein kriegt man nur die Fehlermeldung, dass es keine Shops im Umkreis gibt.
Ich hab jetzt eine neue TYPO3 Installation aufgesetzt und da werden die Adressen für die Shops auch nicht mehr in Längen- und Breitengrad übersetzt.
Ich vermute daher, dass sich etwas beim Aufruf der Google Maps API verändert hat.

Kämpft jemand von euch mit einem ähnlichen Problem oder hat es vielleicht sogar schon gelöst?

Grüße
Sebastian

chrizm ·

Hi,
bin heute über genau das gleiche Problem gestolpert. Es funktioniert einfach nicht mehr - ich habe noch keine Spur und bin mir fast sicher, dass nichts geändert wurde 😢
grüße,
chriz

Kaervekk ·

Hallo,

habe das selbe Problem auch in meinen Installationen festgestellt. Seit gestern funktioniert die Umkreissuche nicht mehr.
Der Einzelaufruf eines Stores sowie die Anzeige aller Stores auf einer Karte funktioniert weiterhin. Es scheint lediglich das die Suche ihren Dienst einfach nicht mehr tuen will.

Auch in einer neu aufgesetzt Testumgebung funktioniert die Extension "locator" nicht mehr.

Hat schon jemand einen Lösungsvorschlag?
Sowohl an der Extension, als auch an den Typo3-Installationen habe ich nichts verändert.

Danke & Gruß
Kaer

Bernie ·

Hallo,

bei mir klappt die Umkreissuche neuerdings auch nicht mehr.

Hat jemand schon eine Lösung des Problems gefunden?

Danke und Gruß
Bernard

fstepson ·

Bei mir geht die locator EXT. auch seit heute nicht mehr und zwar auf 3 Webseiten wo die EXT. schon installiert ist. Hat jemand eine Lösung?

jenses ·

Google hat am 8.März die geolocator API V 2 abgestellt:
https://developers.google.com/maps/documentation/geocoding/v2/

Kein Problem, gibt ja die API V3
https://developers.google.com/maps/documentation/geocoding/

Man muß u.a. die Funktion geocodeAddress() in ./pi1/class.tx_locator_model.php anpassen,
evtl. gibt es noch mehr Aufrufe, einfach suchen (arbeite selbst mit einer komplett umgebauten locator-Version...)

Aus:

$apiURL = "http://maps.google.com/maps/geo?q=$city,$country&key=$key&output=xml";
$apiURL = utf8_encode($apiURL);

//      $apiURL = "http://maps.google.com/maps/geo?q=$address,$city,$state,$zipcode,$country&key=$key&output=xml";
$addressData = $this->get_webpage($apiURL);
$coordinates = explode(',', $this->between("<coordinates>", "</coordinates>", $addressData));
$lat_lon->lat = $coordinates[1];
$lat_lon->lon = $coordinates[0];

muß so was wie das Folgende werden:

$apiURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=$city,$country&sensor=false";
$apiURL = utf8_encode($apiURL);
$addressData = $this->get_webpage($apiURL);
$addressData = t3lib_div::xml2array($addressData,$NSprefix='',$reportDocTag=FALSE);
$coordinates = $addressData['result']['geometry']['location'];
$lat_lon = new \stdClass();
$lat_lon->lat = $coordinates['lat'];
$lat_lon->lon = $coordinates['lng'];
Bernie ·

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

jenses ·
Bernie schrieb

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

Ja, in meiner eigenen Extension, ich benutze ja nicht die Original-Ext:locator.
Die Verfahrensweise ist aber identisch.

tohe01 ·
Bernie schrieb

Hallo Jenses,

vielen Dank für den Hinweis.

Hast Du Deinen Lösungsvorschlag schon getestet?

Gruß
Bernard

Hallo Bernie,

wir haben es bei uns mit folgendem Code in der original Version geändert:

$apiURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=$city,$country&sensor=false";
$apiURL = utf8_encode($apiURL);
$addressData = $this->get_webpage($apiURL);
$coordinates = $this->between("<location>", "</location>", $addressData);
$lat_lon->lat = $this->between("<lat>", "</lat>", $coordinates);
$lat_lon->lon = $this->between("<lng>", "</lng>", $coordinates);

Dies muss zweimal innerhalb von #####International####### geändert werden.

Mit besten Grüßen
Torsten

shaak ·

Hallo,
so ähnlich haben wir es auch angepasst.

Wir werden dem Entwickler auch eine Nachricht zukommen lassen, damit er die Extension updated.

Grüße
Sebastian

flanger ·

und ich such mich hier dumm und dusselig und denke schon ich spinn weil meine ext nicht mehr funktioniert hat... pheeewww... 10000 mal Danke für den Post....

wawo ·

Hallo!

Ich bin gerade dabei die Locator Extension komplett neu einzubinden und bekomme leider auch die ganze Zeit nach der Suche "Es wurden keine Firmen gefunden, vielleicht waren Ihre Angaben nicht korrekt." angezeigt.

Könnte mir jemand von euch vlt. mal die komplette angepasste Dateiclass.tx_locator_model.php zur Verfügung stellen, da sich leider an dem Fehler auch nach Eingabe der hier genannten Änderungen nichts verändert hat...

Noch eine Frage:
Verstehe ich das richtig dass durch anhacken von "tx_locator[geocode]" keine Längen + Breitengrade eingegeben werden müssen - die Extension also automatisch diese laut den Adresseingaben in der Map darstellen würde - wenn die Suche funktionieren würde?

flanger ·

Ja - der Fehler besteht auch in der aktuellen Version des Locators. Ich packe Dir mal meine Datei hier hin, aber ich verspreche nicht, dass die total richtig ist - bei mir funktioniert es allerdings damit wieder.

class.tx_locator_model.txt
87kB
wawo ·

Perfekt danke! Jetzt funktioniert die Suche - es werden Adressen gefunden. Leider wird bei allen Adressen aber immer in der Map (bei Suche nach Wiener Adressen) der Stephandsdom angezeigt - egal welche Anschrift eingegeben wurde in der Adressdatei.

Ich habe keine Koordinaten eingegeben sonder das Häckchen bei tx_locator(geocode) gesetzt.

Wie gesagt nutze ich eine völlig neue Installation und hatte bis dato noch nicht mit dem locator zu tun - vlt. liegt es jetzt an einer falsch Eingabe und nicht am Script...

wawo ·

Ok es ist offensichtlich so dass er immer die jeweilige Stadt findet und das Fähnchen im Zentrum positioniert - also die Strasse der Adressdatei ignoriert...

jenses ·

Ersetzt mal die function geocodeAddress($complete_address) in class.tx_locator_model.php mit der folgenden Version:

function geocodeAddress($complete_address) {

		//for urlencoding
		$vars = array (
			'city',
			'address',
			'country'
		);
		while (list (, $v) = each($vars)) {
			$complete_address[$v] = urlencode($complete_address[$v]);
		}
		$address = $complete_address['address'];
		$city = $complete_address['city'];
		$state = $complete_address['state'];
		$country = $complete_address['country'];
		$zipcode = $complete_address['zipcode'];


		if ($GLOBALS['TSFE']->localeCharset == 'utf-8')
			$city = mb_strtolower($city, "UTF-8"); // especially used for the polish dashed L


    if (!$lat_lon->lat && !$lat_lon->lon) {

      // API V3, da V2 seit 2013-03-08 den Dienst eingestellt hat:
      $generated_address = $address.','.$city.','.$state.','.$country.','.$zipcode;
      $apiURL = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$generated_address."&sensor=false";
      //$apiURL = utf8_encode($apiURL);
      $addressData = $this->get_webpage($apiURL);
      $addressData = t3lib_div::xml2array($addressData,$NSprefix='',$reportDocTag=FALSE);
      $coordinates = $addressData['result']['geometry']['location'];
      //$lat_lon = new \stdClass();
      $lat_lon->lat = $coordinates['lat'];
      $lat_lon->lon = $coordinates['lng'];

      $this->_GP['start']['city'] = utf8_encode($city);
      $this->_GP['start']['lon'][] .= $coordinates['lat'];
      $this->_GP['start']['lat'][] .= $coordinates['lng'];
		}

		return $lat_lon;
	}
flanger ·

das klappt bei mir nicht mit dem Ersetzen. Ich bekomme Parse Errors in der Zeile

if ($GLOBALS['TSFE']->localeCharset == 'utf-8')
			$city = mb_strtolower($city, "UTF-8&quot<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />; // especially used for the polish dashed L

und wenn ich die Zeile auskommentiere bzw. den // vor res entferne gehts auch nicht. Was mache ich falsch?

Ich verstehe auch nicht was der Aufruf fürs mm_forum da zu suchen hat?

shaak ·

beachte bitte, das das Forum folgenden Text ": x" ersetzt (ohne Leerzeichen natürlich.
Da entsteht dann sowas: <img src="typo3conf/ext/mm_forum//res/smilies/icon_mad.gif" alt="icon_mad.gif" />

und ": wink :" zu <img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />