Skip to content
This repository has been archived by the owner on Jan 1, 2025. It is now read-only.

Geo-Koordinaten werden nicht mehr aus Adresse berechnet #110

Open
thepixture opened this issue Nov 4, 2018 · 32 comments · May be fixed by delahaye/dlh_geocode#14
Open

Geo-Koordinaten werden nicht mehr aus Adresse berechnet #110

thepixture opened this issue Nov 4, 2018 · 32 comments · May be fixed by delahaye/dlh_geocode#14

Comments

@thepixture
Copy link

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.

@birdmedia
Copy link

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.

@tinokramm
Copy link

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

@Aybee
Copy link

Aybee commented Mar 21, 2019

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.

@tinokramm
Copy link

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.

@Aybee
Copy link

Aybee commented Mar 21, 2019

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
Copy link

Aybee commented Mar 21, 2019

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
Copy link

Aybee commented Mar 21, 2019

Google_Maps

@Aybee
Copy link

Aybee commented Mar 21, 2019

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.

@wanst
Copy link

wanst commented Sep 11, 2019

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?

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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.

@maiurb
Copy link

maiurb commented Sep 11, 2019

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

VG Maik

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

Habe ich doch verlinkt? ;)

@maiurb
Copy link

maiurb commented Sep 11, 2019

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

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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

Die localconfig.php befindet sich in system/config.

@maiurb
Copy link

maiurb commented Sep 11, 2019

Bei mir steht der Key drin.

@fritzmg fritzmg linked a pull request Sep 11, 2019 that will close this issue
@Aybee
Copy link

Aybee commented Sep 11, 2019

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

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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: delahaye/dlh_geocode#12 (comment) ;)

@wanst
Copy link

wanst commented Sep 11, 2019

Steht in eurer localconfig.php ein dlh_googlemaps_apikey drin?

Nein. Wird der normalerweise automatisch angelegt?

@wanst
Copy link

wanst commented Sep 11, 2019

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

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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.

@Aybee
Copy link

Aybee commented Sep 11, 2019

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?

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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

@wanst
Copy link

wanst commented Sep 11, 2019

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.

@maiurb
Copy link

maiurb commented Sep 11, 2019

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
Copy link

maiurb commented Sep 11, 2019

Hier der Link.

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

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

<script src="system/modules/dlh_googlemaps/assets/js-marker-clusterer-gh-pages/src/markerclusterer.js"></script> <script src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXX&language=de"></script>

@fritzmg
Copy link

fritzmg commented Sep 11, 2019

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

@maiurb
Copy link

maiurb commented Sep 11, 2019

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?

@Aybee
Copy link

Aybee commented Sep 11, 2019

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.

@maiurb
Copy link

maiurb commented Sep 12, 2019

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

@wanst
Copy link

wanst commented Sep 12, 2019

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

Hattest du vorher die Änderung von FritzMG in der dlh_geocode/classes/GeoCode.php gemacht? Dann wurde die ja bei der Reparatur überschrieben, oder?
Ich frage, weil ich diese Änderung an einer meiner Installationen NICHT gemacht habe und an der alles mit den beiden Keys (IP- und URL-Beschränkung) funktioniert. An einer anderen (Test-)Installation, an der ich u.a. die Änderung von FritzMG gemacht hab, funktioniert gerade nur noch der Frontend-Teil der Erweiterung korrekt.

@maiurb
Copy link

maiurb commented Sep 12, 2019

Also, die Änderungen waren wirklich nicht mehr drin, nach der Aktualisierung.
So habe ich es garade getestet und es kam der übliche Fehler.

Jetzt habe ich die Änderung in die Datei "GeoCode.php" wieder eingetragen und getestet, kein Fehler!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants