dlh_googlemaps icon indicating copy to clipboard operation
dlh_googlemaps copied to clipboard

Geo-Koordinaten werden nicht mehr aus Adresse berechnet

Open thepixture opened this issue 6 years ago • 32 comments

Wenn man eine neue Karte anlegt und die Adresse bei "Adresse für Geocoding" eingibt und dann speichert, werden die Koordinaten nicht mehr automatisch in das Feld "Geo-Koordinaten" eingetragen.

thepixture avatar Nov 04 '18 22:11 thepixture

Google hat dieses Jahr seine Google Maps API umgestellt und die einzelnen Services (Kartendarstellung, Geokodierung etc.) in einzelne, z.T. kostenpflichtige APIs ausgelagert, die einzeln pro Domain freigeschaltet werden müssen. Insbesondere neue Domains / Projekte sind hiervon betroffen.

birdmedia avatar Nov 22 '18 14:11 birdmedia

Wird bald eine Option im Modul ergänzt, um einen API-Key speziell für die Geocoding API zu hinterlegen?

tinokramm avatar Feb 05 '19 10:02 tinokramm

Geocoding müsste noch funktionieren. Allerdings, wenn ich das richtig interpretiert habe, nicht mehr, wenn man den API-Key auf URLs eingeschränkt hat. Irgendwo habe ich gelesen, dass man bestimmte APIs, darunter die Geocoding API nur auf IPs einschränken kann.

Für diesen Fall müsste also unbedingt ein weiteres Eingabefeld für einen API-Key hinzu kommen, welches dann für den auf IPs eingeschränkten API-Key benutzt wird. Intern müsste dann für den Aufruf dieser APIs der "IP-Key" benutzt werden.

Ich suche noch nach dieser Seite, wo ich das mit der Einschränkung gefunden habe und melde mich dann nochmal.

Aybee avatar Mar 21 '19 08:03 Aybee

Die gleiche Erfahrung haben wir auch gemacht. Mit URL-Einschränkung können Maps und Geocoding API nicht gleichzeitig benutzt werden. Es müssen zwangsläufig zwei verschiedene Keys hinterlegt werden.

tinokramm avatar Mar 21 '19 09:03 tinokramm

Suche nach "google maps geocoding ip restrictions" https://developers.google.com/maps/api-key-best-practices https://stackoverflow.com/questions/52416697/google-geocode-api-ip-restrictions

Diese Google Maps APIs funktionieren nur mit IP-Restriction

  • Directions
  • Distance Matrix
  • Elevation
  • Geocoding
  • Geolocation
  • Places
  • Roads
  • Time Zone

Aybee avatar Mar 21 '19 09:03 Aybee

Das Feld für den zweiten Key muss also nur ausgefüllt werden, wenn der API-Key eine HTTP-Einschränkung hat. Hat man nur einen Key für alle APIs und dieser hat keine Einschränkung, dann kann im Hintergrund dieser eine Key benutzt werden.

Aybee avatar Mar 21 '19 09:03 Aybee

Google_Maps

Aybee avatar Mar 21 '19 09:03 Aybee

Die Geocoding API, welche ja nur aus dem BE heraus laufen muss, dürfte dann nicht über eine HTTP-Anfrage auf ne Geocoding-JS-Datei stattfinden. Weil dabei die IP-Adresse des Users freigebeben werden müsste, welche wir ja nicht kennen. Die Anfrage müsste direkt vom Server gestellt werden und es würde Sinn machen, dass die Erweiterung diese IP direkt im BE an geeigneter Stelle anzeigt, weil wir diese ja freigeben müssen.

Aybee avatar Mar 21 '19 10:03 Aybee

Komplexe Thematik, gibt es da schon Lösungsansätze? Die IP bleibt ja nicht mal zwangsläufig immer gleich, oder? Insb. bei Shared Hostern, die ihre DNS-Einträge ändern können, wie sie lustig sind. Oder wird das eher nicht praktiziert?

wanst avatar Sep 11 '19 10:09 wanst

Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?

fritzmg avatar Sep 11 '19 11:09 fritzmg

Soweit ich sehe liegt der Fehler hier:

https://github.com/delahaye/dlh_geocode/blob/2af3383a040a2a3893a1f3e3be6ba0de35c7629f/classes/GeoCode.php#L71

Hier wird der Key nicht übergeben. Die Zeile müsste stattdessen

$arrCoords = self::getInstance()->geoCode($strAddress, null, $strLang, $strCountry, null, $key);

lauten.

fritzmg avatar Sep 11 '19 11:09 fritzmg

Hallo, ich würde das gern testen. Leider weiß ich nicht welche Datei ich am Server anpassen muss.

VG Maik

maiurb avatar Sep 11 '19 12:09 maiurb

Habe ich doch verlinkt? ;)

fritzmg avatar Sep 11 '19 13:09 fritzmg

Ok, man muss die _GeoCode.php_bearbeiten. War bei mir unter modules/classes/GeoCode.php zu finden. Habe die Zeile ausgebessert und es funktioniert.

"Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?" Damit konnte ich nix anfangen!

Vielen Dank an fritzmg

maiurb avatar Sep 11 '19 13:09 maiurb

"Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?" Damit konnte ich nix anfangen!

Die localconfig.php befindet sich in system/config.

fritzmg avatar Sep 11 '19 13:09 fritzmg

Bei mir steht der Key drin.

maiurb avatar Sep 11 '19 13:09 maiurb

Aber dies löst nicht das Problem mit dem Key, wenn er auf spezielle Domains festgesetzt wurde. Richtig?

Aybee avatar Sep 11 '19 13:09 Aybee

Aber dies löst nicht das Problem mit dem Key, wenn er auf spezielle Domains festgesetzt wurde. Richtig?

Für das Backend musst du einen Key verwenden, der auch im Backend funktioniert - aber das ist ja nur mehr eine Frage der Konfiguration und kein Fehler der Extension.

Die Lösung des Problems ist übrigens schon seit einem Jahr bekannt: https://github.com/delahaye/dlh_geocode/issues/12#issue-363482378 ;)

fritzmg avatar Sep 11 '19 13:09 fritzmg

Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?

Nein. Wird der normalerweise automatisch angelegt?

wanst avatar Sep 11 '19 13:09 wanst

^ das wars! Danke! Wo steht das denn, dass es dahin muss?

wanst avatar Sep 11 '19 13:09 wanst

Nein. Wird der normalerweise automatisch angelegt?

Das wird angelegt, wenn du in den System Einstellungen den API Key einträgst.

^ das wars! Danke! Wo steht das denn, dass es dahin muss?

Das ist der primäre Ort, wo du den API Key einträgst - und auch der einzige Ort, der für das Backend gilt.

In den neueren Versionen kann man den API Key nun auch pro Domain für das Frontend einstellen, falls du mehrere API Keys je Domain/Website hast. Die gelten aber nicht für das Backend, logischerweise.

fritzmg avatar Sep 11 '19 13:09 fritzmg

Ah, ok. Also brauche ich zwei Keys, einen fürs BE ohne Restriktionen, den trage ich in den Einstellungen ein, damit er in die localconfig.php kommt und der wird im BE benutzt. Und einen Key fürs FE, der dann auch auf die Domain beschränkt sein kann und im Startpunkt eingetragen wird. Richtig?

Aybee avatar Sep 11 '19 13:09 Aybee

Grundsätzlich ja. Den für das Backend könntest du per IP restricten.

fritzmg avatar Sep 11 '19 14:09 fritzmg

Also ich hab jetzt mal ein bisschen rumgespielt. Der Weg mit 2 Keys funktioniert, wenn:

  • Key 1 im BE-Systemeinstellungen eingetragen ist und nur auf die Server-IP.
  • Key 2 im Startpunkt eingetragen ist und nur auf die Domain(s) beschränkt.

Lässt man den Key ohne Einschränkung, reicht auch einer! Dann sei aber halt Vorsicht geboten, wegen Kontingentklau, sagt Tante/Onkel Google.

wanst avatar Sep 11 '19 15:09 wanst

Wenn ich jetzt eine neue Karte anlege, wird die Karte nicht mehr angezeigt. Auch zwei bereits angelegte Karten werden nicht mehr angezeigt. Woran kann das liegen?

maiurb avatar Sep 11 '19 16:09 maiurb

Hier der Link.

https://boulderrausch.de/nordamerika-bouldern.html

Es fehlen genau zwei Zeilen Code:, gegenüber den alten Seiten:

maiurb avatar Sep 11 '19 17:09 maiurb

@maiurb das hat jetzt aber nichts mehr mit diesem Ticket zu tun?

fritzmg avatar Sep 11 '19 19:09 fritzmg

Das Problem ist aber erst aufgetreten, nachdem ich die Änderungen vorgenommen habe.??? Warum wird plötzlich der Code nicht mehr übergeben. Bei den zwei bestehenden Karten hatte alles funktioniert. Jetzt werden sie nicht mehr angezeigt. Die alten Karten funktionieren alle, aber keine neu angelegten und die zwei. Irgend eine Idee?

maiurb avatar Sep 11 '19 19:09 maiurb

Das hier ist falsch

google.maps.LatLng(Nordamerika)

müsste so aussehen

google.maps.LatLng(54.5259614,15.2551187)

ps Schmeiß mal dein MooTools und die Slimbox raus, das solltest du eigentlich beides nicht benötigen.

Aybee avatar Sep 11 '19 20:09 Aybee

Das hier ist falsch

google.maps.LatLng(Nordamerika)

müsste so aussehen

google.maps.LatLng(54.5259614,15.2551187)

ps Schmeiß mal dein MooTools und die Slimbox raus, das solltest du eigentlich beides nicht benötigen.

Danke, das hat funktioniert.

Nachdem ich aber die Erweiterung noch mal aktualisiert/repariert habe, hat alles andere auch wieder funktioniert!

Vielen Dank für die Unterstützung.

VG Maik

maiurb avatar Sep 12 '19 04:09 maiurb