Strassenkarte anzeigen via Url
Verfasst: 02.06.2011 21:38
				
				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.
			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