Seite 1 von 1

Strassenkarte anzeigen via Url

Verfasst: 02.06.2011 21:38
von hjbremer
Da ich von Javascript keine Ahnung habe, aber trotzdem eine Strassenkarte haben wollte, habe ich die Google Static Maps API gefunden. Ist simpel, aber natürlich auch nicht so komfortabel.

Wenn Google die Adresse nicht erkennt, erscheint ein leeres Bild. Ursache ist meist falsche Schreibweise oder Zeichen die nicht akzeptiert werden. Auch Leerzeichen + Großbuchstaben bei den Parametern in der URL werden meist nicht akzeptiert.

Das Containergadget ist dazu da, die Ränder abzuschneiden und den Scrollbalken verschwinden zu lassen.

Code: Alles auswählen

;http://code.google.com/intl/de-DE/apis/maps/documentation/staticmaps/

Enumeration 1
   #mainwindow
   #webgadget 
   #spingadget
   #combogadget
   #stringgadget
   #buttongadget
EndEnumeration

Procedure.s MakeUrl()
   
   Protected adr.s, url.s
      
   adr = Trim(GetGadgetText(#stringgadget))
   adr = ReplaceString(adr, "Ä", "Ae")
   adr = ReplaceString(adr, "Ö", "Oe")
   adr = ReplaceString(adr, "Ü", "Ue")
   adr = ReplaceString(adr, "ä", "ae")
   adr = ReplaceString(adr, "ö", "oe")
   adr = ReplaceString(adr, "ü", "ue")
   adr = ReplaceString(adr, "ß", "ss")
      
   adr = URLEncoder(adr)   ;:Debug adr
   
   url = "http://maps.google.com/maps/api/staticmap"
   url + "?center=" + adr
   url + "&size=460x460"
   url + "&maptype=" + LCase(Trim(GetGadgetText(#combogadget)))
   url + "&sensor=false"
   url + "&markers=size:mid|color:blue|label:S|" + adr
   url + "&zoom=" + Str(GetGadgetState(#spingadget))                        
   
  ProcedureReturn url  
EndProcedure

OpenWindow(#mainwindow, 0, 0, 488, 518, "GoogleMap-Test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ContainerGadget(#PB_Any, 10, 10, 468, 468, #PB_Container_Double)  
   WebGadget(#webgadget, -8, -13, 500, 500, "")
CloseGadgetList()

ComboBoxGadget(#combogadget, 10, 488, 80, 20)  
   AddGadgetItem(#combogadget, -1," Roadmap")
   AddGadgetItem(#combogadget, -1," Satellite")
   AddGadgetItem(#combogadget, -1," Hybrid")
   AddGadgetItem(#combogadget, -1," Terrain")
   SetGadgetState(#combogadget, 0)
   
StringGadget(#stringgadget, 100, 488, 298, 20, "Neumünster Mühlenhof 5")     

ButtonGadget(#buttongadget, 408, 488, 30, 20, "Go") 

SpinGadget(#spingadget, 448, 488, 30, 20, 1, 21, #PB_Spin_Numeric)  
SetGadgetState(#spingadget, 16)

SetGadgetText(#webgadget, MakeUrl())

AddKeyboardShortcut(#mainwindow, #PB_Shortcut_Return, #buttonGadget)


Repeat      
   event = WaitWindowEvent() 
   
   Select EventWindow()
                  
      Case #mainwindow
         
         Select event               
               
            Case #PB_Event_Gadget, #PB_Event_Menu
         
               Select EventGadget()
            
                  Case #spingadget                  
                     If EventType() = #PB_EventType_Change
                        SetGadgetText(#webgadget, MakeUrl()) 
                     EndIf                    

                  Case #combogadget
                     If EventType() = #PB_EventType_TitleChange
                        SetGadgetText(#webgadget, MakeUrl()) 
                     EndIf
                  
                  Case #buttonGadget
                     SetGadgetText(#webgadget, MakeUrl())
                 
               EndSelect
               
         EndSelect        
   EndSelect
   
Until event = #PB_Event_CloseWindow 
   

Re: Strassenkarte anzeigen via Url

Verfasst: 02.06.2011 21:56
von ts-soft
:allright:

Beim ComboGadget haste einen Flüchtigkeitsfehler, der EventType ist falsch!

Re: Strassenkarte anzeigen via Url

Verfasst: 02.06.2011 22:26
von hjbremer
Nee, eigentlich gibt es laut Hilfe gar kein Eventtype, aber es gibt doch eins und zwar 1 und das ist Titlechange

Re: Strassenkarte anzeigen via Url

Verfasst: 02.06.2011 22:33
von ts-soft
Okay, hab den Fehler gefunden, das funktioniert so in 4.60 nicht mehr!
Da braucht er dann wieder #PB_EventType_Change :wink:

Re: Strassenkarte anzeigen via Url

Verfasst: 03.06.2011 07:14
von rolaf
Hey, klasse das. :allright:

Re: Strassenkarte anzeigen via Url

Verfasst: 04.08.2011 17:37
von kwai chang caine
Auch Arbeiten hinter einem Proxy
Vielen Dank :bounce: