Aktuelle Zeit: 21.04.2019 08:32

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Modul: Geokodierung über OSM und Google ohne APIKey
BeitragVerfasst: 16.09.2016 22:08 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Der Ursprungspost aus dem Jahr 2016 hat geschrieben:
...ich suchte heute eine Möglichkeit eine Adresse automatisiert in entsprechende Geo-Koordinaten (Längen- und Breitengrad) umwandeln zu lassen.

Im Netz gibt es einige Service-Anbieter, aber diese arbeiten alle mit APIs, die man nur nutzen kann, wenn man sich zuvor angemeldet und einen API-Schlüssel bezogen hat. Das kosten zwar bei den meisten kein Geld, aber ich dachte mir: "Manuell über Google Maps geht es doch auch, warum also nicht auch automatisiert?"

17.04.2019:
Ich habe die Geo-Kodierung jetzt auf Open Streetmap (OSM) umgeschrieben, da es hier eine definierte JSON und XML Schnittstelle gibt. Sollte die Kodierung mittels OSM nicht erfolgreich verlaufen, dann wird automatisch auf Google Maps zurückgegriffen.

Alternativ kann man mit den Konstanten #FORCE_OSM und #FORCE_GOOGLE eine exclusive Kodierung mit dem jeweiligen Service erzwingen. Mit #FORCE_NOTHING (oder durch Weglassen der Konstante) wird zuerst versucht über OSM zu kodieren und, wenn das nicht funktioniert, über Google Maps.

Das Modul bietet folgende öffentliche Funktion an:
Code:
AddressToGeo(sAddress.s, *stOutGeolocation.geolocation, iForceService.i)
; +-----------------------------------------------------------------
; |Description  : Kodiert mittels Open Streetmap (OSM) bzw. Google Maps eine Adresse in Längen- und Breitengrad
; |Arguments    : sAddress         : Die zu kodierende Adresse als Freitext (z.B. "Hauptstraße 5, 10827 Berlin")
; |             : *stOutGeolocation: Struktur vom Typ geolocation, welche die Koordinaten und die von OSM bzw.
; |                                  Google Maps korrigierte Adresse erhält
; |             : iForceService    : Über die Konstanten #FORCE_OSM und #FORCE_GOOGLE kann die ausschließliche
; |                                  Kodierung über Open Streetmap bzw. Google Maps erzwungen werden. Wird der
; |                                  Parameter weggelassen oder #FORCE_NOTHING angegeben, dann wird zuerst
; |                                  versucht über OSM zu kodieren und im Fehelrfall dann über Google Maps.
; |Results      : 1, wenn die Abfrage erfolgreich war, 0 bei Fehlern
; |Remarks      : Die zurückgegebene Adresse ist die von OSM bzw. Google korrigierte Adresse
; |               Bitte beachten, dass der Aufbau der Adresse bei beiden unterschiedlich ist!
; +-----------------------------------------------------------------

Ein Aufruf sieht z.B. so aus:
Code:
  UseModule AddressToGeo
  Declare stGeoLoc.geolocation
 
  InitNetwork()
 
  If AddressToGeo("Hauptstrasse 4, 10827 Berlin Deutschland", stGeoLoc, #FORCE_NOTHING)
    Debug stGeoLoc\sAddress + ": " + stGeoLoc\sLatitude + ", " + stGeoLoc\sLongitude
  Else
    Debug "Geocoding failed!"
  EndIf
  UnuseModule AddressToGeo

Eine mögliche Rückgabe sieht wie folgt aus:
Zoulou Bar, 4, Hauptstraße, Schöneberg, Tempelhof-Schöneberg, Berlin, 10827, Deutschland: 52.4899871, 13.359534

Code:
Changelog:
;* 1.01 - add 17.04.2019: The primary coding is now done via the JSON
;*                        interface of open Streetmap. Only if this encoding
;*                        fails there is a fallback to Google Maps.

Hier der Sourcecode:
Code:
;*************************************************************************
;* AddressToGeo
;*************************************************************************
;*
;* Modulname         : AddressToGeo
;* Filename          : mod_AddressToGeo.pbi
;* Filetype          : Module [MainApp, Formular, Include, Module, Data]
;* Programming lang. : Purebasic 5.62+
;* String-Format     : Unicode [Ascii, Unicode, All]
;* Platform          : All [Windows, Mac, Linux, All]
;* Processor         : All [x86, x64, All]
;* Compileroptions   : -
;* Version           : 1.01
;* Date              : 17.04.2019
;* Autor             : Kurzer
;* Dependencies      :
;* -----------------------------------------------------------------------
;* Description:
;*
;* Get the geographic coordinates from an addresse
;* -----------------------------------------------------------------------
;* Changelog:
;* 1.01 - add 17.04.2019: The primary coding is now done via the JSON
;*                        interface of Open Streetmap. Only if this encoding
;*                        fails there is a fallback to Google Maps.
;* 1.00 - rel 15.04.2019: First release
;* -----------------------------------------------------------------------
;* English-Forum     : https://www.purebasic.fr/english/viewtopic.php?f=27&t=66616
;* French-Forum      :
;* German-Forum      : https://www.purebasic.fr/german/viewtopic.php?f=8&t=29821
;* -----------------------------------------------------------------------
;* License: MIT License
;*
;* Copyright (c) 2016/19 Kurzer
;*
;* Permission is hereby granted, free of charge, to any person obtaining a copy
;* of this software and associated documentation files (the "Software"), to deal
;* in the Software without restriction, including without limitation the rights
;* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
;* copies of the Software, and to permit persons to whom the Software is
;* furnished to do so, subject to the following conditions:
;*
;* The above copyright notice and this permission notice shall be included in all
;* copies or substantial portions of the Software.
;*
;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
;* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
;* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
;* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
;* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
;* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
;* SOFTWARE.
;*
;* ---------------- German translation of the MIT License ----------------
;*
;* MIT Lizenz:
;*
;* Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der
;* zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt,
;* sie uneingeschränkt zu nutzen, inklusive und ohne Ausnahme mit dem Recht, sie
;* zu verwenden, zu kopieren, zu verändern, zusammenzufügen, zu veröffentlichen,
;* zu verbreiten, zu unterlizenzieren und/oder zu verkaufen, und Personen, denen
;* diese Software überlassen wird, diese Rechte zu verschaffen, unter den folgenden
;* Bedingungen:
;*
;* Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien
;* oder Teilkopien der Software beizulegen.
;*
;* DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT,
;* EINSCHLIEßLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN
;* ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM
;* FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE
;* ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES
;* ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE
;* ENTSTANDEN.
;*************************************************************************

DeclareModule AddressToGeo
   ;- --- [Module declaration / public elements] ------------------------------------------
   ;-
   
   ;*************************************************************************
   ;- Compiler directives
   ;*************************************************************************
   EnableExplicit
   
   ;*************************************************************************
   ;- Constants
   ;*************************************************************************
   #FORCE_NOTHING                        = 0
   #FORCE_GOOGLE                           = 1
   #FORCE_OSM                              = 2
   
   ;*************************************************************************
   ;- Structures
   ;*************************************************************************
   Structure geolocation
      sLatitude.s
      sLongitude.s
      sAddress.s
   EndStructure
   
   ;*************************************************************************
   ;- Public Procedures (dec)
   ;*************************************************************************
   Declare.i AddressToGeo(sAddress.s, *stOutGeolocation.geolocation, iForceService.i = 0)
   
EndDeclareModule

Module AddressToGeo
   ;-
   ;- --- [Module implementation / private elements] -----------------------------------------
   ;-
   
   ;*************************************************************************
   ;- Constants
   ;*************************************************************************
   #OSM_URL                                 = "https://nominatim.openstreetmap.org/search?q=#ADR#&format=json"
   #GOOGLE_URL                              = "https://www.google.de/maps/place/#ADR#"
   #GOOGLE_ADR_STARTDELIMITER       = ~"\\\"https://www.google.de/maps/preview/place/"
   #GOOGLE_ADR_ENDDELIMITER          = "/@"
   #GOOGLE_GEO_STARTDELIMITER      = ~"\",null,[null,null,"
   #GOOGLE_GEO_ENDDELIMITER         = "]"
   
   ;*************************************************************************
   ;- Private Procedures (imp)
   ;*************************************************************************
   Procedure.s GetStringPart(sString.s, sStartDelimiter.s, sEndDelimiter.s, iPartLength=0)
      ; +-----------------------------------------------------------------
      ; |Description  : Extrahiert aus einem String ein Teilstück, welches durch sStartDelimiter und sEndDelimiter eingeschlossen ist
      ; |Arguments    : sString        : String aus dem der Teilstring extrahiert werden soll
      ; |             : sStartDelimiter: Linker Begrenzungsstring
      ; |             : sEndDelimiter  : Rechter Begrenzungsstring
      ; |             : iPartLength    : Wenn > 0, dann wird sEndDelimiter ignoriert und ein Teilstring mit der Länge iPartLength zurückgegeben
      ; |Results      : Ermittelter Teilstring bzw. "", wenn sStartDelimiter nicht vorhanden ist oder Fehler auftraten
      ; |Remarks      : Kommen die Delimiter mehrfach vor, dann wird nur das erste Auftreten gefunden!
      ; +-----------------------------------------------------------------
      Protected.i iPos1, iPos2
      
      iPos1 = FindString(sString, sStartDelimiter) + Len(sStartDelimiter)
      If iPos1 > 0
         If iPartLength = 0
            iPos2 = FindString(sString, sEndDelimiter, iPos1)
         Else
            iPos2 = iPos1 + iPartLength
         EndIf
         If iPos2 > iPos1
            ProcedureReturn Mid(sString, iPos1, iPos2 - iPos1)
         Else
            ProcedureReturn ""
         EndIf
      Else
         ProcedureReturn ""
      EndIf
   EndProcedure
   Procedure.s AskOSM(sAddress.s)
      ; +-----------------------------------------------------------------
      ; |Description  : Versucht per Open Streetmap die Längen- und Breitengrade zu sAddress zu ermitteln
      ; |Arguments    : sAddress: Adresse als Freitext (z.B. "Hauptstraße 5, 10827 Berlin"
      ; |Results      : "", wenn die Abfrage nicht möglich war oder Fehler aufgetreten sind,
      ; |               andernfalls ein String nach folgendem Format Latitude#Longitude#Adresse
      ; |Remarks      : Die zurückgegebene Adresse ist die von Open Streetmap korrigierte Adresse
      ; +-----------------------------------------------------------------
      Protected.i *Buffer
      Protected.s sURL, sResponse
      
      ; Geokodierungsanfrage an Open Streetmap senden
      sURL = ReplaceString(#OSM_URL, "#ADR#", URLEncoder(sAddress, #PB_UTF8))
      *Buffer = ReceiveHTTPMemory(sURL)
      
      If *Buffer
         sResponse = PeekS(*Buffer, MemorySize(*Buffer), #PB_UTF8|#PB_ByteLength)
         FreeMemory(*Buffer)
         
         ; JSON Daten extrahieren
         If ParseJSON(0, sResponse)
            If JSONArraySize(JSONValue(0)) > 0
               sResponse = GetJSONString(GetJSONMember(GetJSONElement(JSONValue(0), 0), "lat")) + "#"
               sResponse + GetJSONString(GetJSONMember(GetJSONElement(JSONValue(0), 0), "lon")) + "#"
               sResponse + GetJSONString(GetJSONMember(GetJSONElement(JSONValue(0), 0), "display_name"))
               FreeJSON(0)
               ProcedureReturn sResponse
            EndIf
            FreeJSON(0)
         EndIf
      EndIf
      
      ProcedureReturn ""
   EndProcedure
   Procedure.s AskGoogle(sAddress.s)
      ; +-----------------------------------------------------------------
      ; |Description  : Versucht per Google Maps die Längen- und Breitengrade zu sAddress zu ermitteln
      ; |Arguments    : sAddress: Adresse als Freitext (z.B. "Hauptstraße 5, 10827 Berlin"
      ; |Results      : "", wenn die Abfrage nicht möglich war oder Fehler aufgetreten sind,
      ; |               andernfalls ein String nach folgendem Format Latitude#Longitude#Adresse
      ; |Remarks      : Die zurückgegebene Adresse ist die von Google korrigierte Adresse
      ; +-----------------------------------------------------------------
      Protected.i *Buffer
      Protected.s sURL, sResponse, sGoogleAddress
      
      ; Geokodierungsanfrage an Google senden
      sURL = ReplaceString(#GOOGLE_URL, "#ADR#", URLEncoder(sAddress, #PB_UTF8))
      *Buffer = ReceiveHTTPMemory(sURL)
      
      If *Buffer
         sResponse = PeekS(*Buffer, MemorySize(*Buffer), #PB_UTF8|#PB_ByteLength)
         FreeMemory(*Buffer)
         If FindString(sResponse, #GOOGLE_ADR_STARTDELIMITER)
            sGoogleAddress = URLDecoder(GetStringPart(sResponse, #GOOGLE_ADR_STARTDELIMITER, #GOOGLE_ADR_ENDDELIMITER))
            If sGoogleAddress <> ""
               sResponse = GetStringPart(sResponse, sAddress + #GOOGLE_GEO_STARTDELIMITER, #GOOGLE_GEO_ENDDELIMITER)
               ProcedureReturn ReplaceString(sResponse, ",", "#") + "#" + sGoogleAddress
            EndIf
         EndIf   
      EndIf
      
      ProcedureReturn ""
   EndProcedure
   
   ;*************************************************************************
   ;- Public Procedures (imp)
   ;*************************************************************************
   Procedure.i AddressToGeo(sAddress.s, *stOutGeolocation.geolocation, iForceService.i = 0)
      ; +-----------------------------------------------------------------
      ; |Description  : Kodiert mittels Open Streetmap (OSM) bzw. Google Maps eine Adresse in Längen- und Breitengrad
      ; |Arguments    : sAddress         : Die zu kodierende Adresse als Freitext (z.B. "Hauptstraße 5, 10827 Berlin")
      ; |             : *stOutGeolocation: Struktur vom Typ geolocation, welche die Koordinaten und die von OSM bzw.
      ; |                                  Google Maps korrigierte Adresse erhält
      ; |             : iForceService    : Über die Konstanten #FORCE_OSM und #FORCE_GOOGLE kann die ausschließliche
      ; |                                  Kodierung über Open Streetmap bzw. Google Maps erzwungen werden. Wird der
      ; |                                  Parameter weggelassen oder #FORCE_NOTHING angegeben, dann wird zuerst
      ; |                                  versucht über OSM zu kodieren und im Fehelrfall dann über Google Maps.
      ; |Results      : 1, wenn die Abfrage erfolgreich war, 0 bei Fehlern
      ; |Remarks      : Die zurückgegebene Adresse ist die von OSM bzw. Google korrigierte Adresse
      ; |               Bitte beachten, dass der Aufbau der Adresse bei beiden unterschiedlich ist!
      ; +-----------------------------------------------------------------
      Protected.s sLat, sLng, sGeoString
      
      Select iForceService
         Case #FORCE_OSM
            ; Geokodierungsanfrage nur an Open Streetmap senden
            sGeoString = AskOSM(sAddress.s)
         Case #FORCE_GOOGLE
            ; Geokodierungsanfrage nur an Google Maps senden
            sGeoString = AskGoogle(sAddress.s)
         Default
            ; Geokodierungsanfrage an Open Streetmap bzw. bei Fehlern an Google Maps senden
            sGeoString = AskOSM(sAddress.s)
            If sGeoString = ""
               sGeoString = AskGoogle(sAddress.s)
            EndIf
      EndSelect
      
      If sGeoString <> ""
         sLat = StringField(sGeoString, 1, "#")
         sLng = StringField(sGeoString, 2, "#")
         sAddress = StringField(sGeoString, 3, "#")
         
         If sLat <> "0.0" And sLng <> "0.0"
            *stOutGeolocation\sLatitude = sLat
            *stOutGeolocation\sLongitude = sLng
            *stOutGeolocation\sAddress = sAddress
            ProcedureReturn 1
         EndIf
      EndIf
      
      ProcedureReturn 0
   EndProcedure
EndModule

;-------------------------------------------------------------------------------
;- Main
CompilerIf #PB_Compiler_IsMainFile
   EnableExplicit
   
   Procedure Main()
      UseModule AddressToGeo
      Protected stGeoLoc.geolocation
      Protected sAddress.s, iForceService
      
      InitNetwork()
      
      iForceService = #FORCE_NOTHING
      ;iForceService = #FORCE_GOOGLE
      ;iForceService = #FORCE_OSM
      sAddress = "Hauptstrasse 4, 10827 Berlin Deutschland"
      ;sAddress = "Turmstrasse 11, 4020 Linz, Österreich"
      ;sAddress = "505 Foothill Blvd, Claremont, CA 91711, USA"
      If AddressToGeo(sAddress, stGeoLoc, iForceService)
         Debug stGeoLoc\sAddress + ": " + stGeoLoc\sLatitude + ", " + stGeoLoc\sLongitude
      Else
         Debug "Geocoding failed!"
      EndIf
      
      UnuseModule AddressToGeo
   EndProcedure
   
   Main()
CompilerEndIf

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Zuletzt geändert von Kurzer am 19.04.2019 11:24, insgesamt 10-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Geokodierung (Adresse zu Koordinate) über Google ohne AP
BeitragVerfasst: 01.11.2016 17:35 
Offline

Registriert: 12.12.2004 12:17
hi,
solang ich weiß ist das nutzen der API kostenfrei. https://developers.google.com/maps/pricing-and-plans/
Willst du sie nicht nutzen oder willst du das selber Auswerten ??

Denke das die zweite variante UNREALISTISCH IST ..

Lieben Gruß

_________________
---------------------------------------------------------------------------------------------------------------
Acer Predator , Intel Core I7 6700HQ 2,6 GHz, 16 Gbyte DDR 3 RAM, Nvidia 980M,
512GB SSD + 2TB HDD, BLU-ray Brenner, W-LAN 802 11/a/g/n+ BT 4.0, Windows 10 Enterprise - 64 Bit

PB 5.50 32 & 64 Bit


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Geokodierung (Adresse zu Koordinate) über Google ohne AP
BeitragVerfasst: 01.11.2016 20:50 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Hallo maupa,

ich hatte mich nicht weiter mit der API-Thematik befasst, weiß also auch nicht ob man sich dazu anmelden muss oder nicht.

Da die zweite Variante, die in Deinen Augen unrealistisch ist, hier seit Wochen einwandfrei funktioniert, sehe ich auch keinen Handlungsbedarf mich bzgl. der API Nutzung bei Google anzumelden.

Du siehst ja an obigem Quellcode, dass es auch ohne API geht und die Daten dabei in einem einwandfrei interpretierbaren Format zurückgeliefert werden.

Gruß Kurzer

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Geokodierung (Adresse zu Koordinate) über Google ohne AP
BeitragVerfasst: 05.11.2016 11:38 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Läuft :allright:

Ohne API ist es auch für alle OS :wink:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Geokodierung (Adresse zu Koordinate) über Google ohne AP
BeitragVerfasst: 15.04.2019 16:17 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
15.04.2019: Da Google die API-Key freie Version ihrer Geo-Kodierung mittlerweile komplett abgeschaltet hat, habe ich keine Möglichkeit mehr die Werte über die XML REST-API abzufragen.

Daher habe ich mich wieder für das manuelle parsen eines Google Maps HTTPRequests entschieden. Der Code im ersten Post ist jetzt so angepasst, dass die Geo-Kodierung wieder ohne Verwendung eines Google API-Keys funktioniert. Natürlich nur so lange bis Google den Seitenaufbau ändert, dann sind für die Extraktion der Koordinaten wieder Anpassungen am Source nötig.

Ich habe das Beispiel mittlerweile auch als Modul gestaltet für eine bessere Wiederverwendbarkeit. Und weil ich die Geo-Kodierung aktuell benötige, arbeite ich bereits an einer sichereren Lösung, die nicht auf Google Maps basiert. Die werde ich ebenfalls posten, wenn sie fertig ist.

Kurzer Gruß

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul: Geokodierung über Google ohne APIKey
BeitragVerfasst: 16.04.2019 21:06 
Offline

Registriert: 10.09.2004 15:12
Thx

kann ich gerade gut gebrauchen. :allright:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul: Geokodierung über OSM und Google ohne APIKey
BeitragVerfasst: 17.04.2019 19:20 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
17.04.2019:
Ich habe die Geo-Kodierung jetzt auf Open Streetmap (OSM) umgeschrieben, da es hier eine definierte JSON und XML Schnittstelle gibt. Sollte die Kodierung mittels OSM nicht erfolgreich verlaufen, dann wird automatisch auf Google Maps zurückgegriffen.

Alle weiteren Infos sind im ersten Post zu finden.

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 51.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul: Geokodierung über OSM und Google ohne APIKey
BeitragVerfasst: 18.04.2019 12:10 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:48
Danke, funktioniert :)

_________________
Rings hat geschrieben:
ziert sich nich beim zitieren


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye