Voici une façon de gérer Google maps avec Foxpro. Cet exemple montre comment tracer un itinéraire à partir d'un point vers un autre. Par défaut le point de départ est l'hôtel Novatel à Paris (adresse postale 75015), et si vous mettez par exemple 75010, vous verrez apparaitre une carte de la région de Paris, avec le tracé entre 75015 et 75010. Aussi vous verrez un texte à la gauche décrivant l’itinéraire et aussi vu qu'en France il y a des Google Cams, vous pouvez aussi voir une image 360 degrés d'une rue en particulier.
Code source :
Public oForm
oForm = Createobject("mapclass")
oForm.Show DefineClass mapclass AsForm Height = 573 Width = 900 DoCreate = .T. Name = "form" Caption = "Map form" Add Object oweb AsOleControlWith ; Top = 12, ; Left = 12, ; Height = 468, ; Width = 880, ; Name = "oWeb", ; OleClass = "Shell.Explorer.2" Add Object txtpostcode AsTextBoxWith ; Height = 25, ; Left = 320, ; Top = 492, ; Width = 96, ; Name = "txtPostCode" Add Object cmdfind AsCommandButtonWith ; Top = 492, ; Left = 430, ; Height = 27, ; Width = 48, ; Caption = "OK", ; Name = "cmdFind" Add Object cbowebsites AsComboBoxWith ; ColumnCount = 0, ; ColumnWidths = "", ; RowSourceType = 1, ; RowSource = "Google Maps Paris", ; FirstElement = 1, ; Height = 24, ; IncrementalSearch = .F., ; Left = 72, ; NumberOfElements = 0, ; Style = 2, ; Top = 492, ; Width = 140, ; BoundTo = .T., ; Name = "cboWebSites" Add Object label2 AsLabelWith ; FontBold = .T., ; FontUnderline = .T., ; Caption = "Web-site", ; Height = 17, ; Left = 12, ; Top = 492, ; Width = 53, ; Name = "Label2" Add Object label4 AsLabelWith ; FontBold = .T., ; FontUnderline = .T., ; Caption = "Site destination", ; Height = 17, ; Left = 220, ; Top = 492, ; Width = 96, ; Name = "Label4" ProcedureLoad Sys(2333,1) Endproc Procedure cmdfind.Click Local lcURL Local lcStartPostCode
lcURL="" * This is where the map starts from (used for google search only)
lcStartPostCode="75015" DoCase CaseThisform.cbowebsites.ListIndex = 1 && Google
lcURL = "http://maps.google.fr/maps?oi=eu_map&q=Paris&hl=fr"
lcURL = lcURL + "&saddr="+Chrtran(Alltrim(lcStartPostCode)," ","+")
lcURL = lcURL + "&daddr="+Chrtran(Alltrim(This.Parent.txtpostcode.Value)," ","+")
lcURL = lcURL + "&btnG=Search" Otherwise Messagebox ("Please select a web site.") Return Endcase This.Parent.oweb.Navigate(lcURL) Endproc Enddefine
Commentaires
le 25/08/2009, Francis Faure a écrit : Excellente contrib Mike ! Bravo et Merci
le 03/09/2009, JpG a écrit : Merci Mike. Très utile pour moi. Quand tu as la carte que tu veux à l'écran, dans une fenêtre VFP, peut-on facilement ajouter un bouton pour sauvegarder la carte en .JPEG ? Si tu as la solution simple, je pense que ce serait utile à tous. JpG
le 03/09/2009, Mike Gagnon a écrit : Un solution simple? Non, découper une région d'une forme et en faire un JPG est faisaible, mais pas si simple. Mais l'option imprimer sur Google Map (en haut à droite) ne fait pas l'affaire?
Excellente contrib Mike !
Bravo et Merci