ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Gérer Google Maps dans une forme   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 09 - Automation

Gérer Google Maps dans une forme
# 0000000714
ajouté le 25/08/2009 18:34:51 et modifié le 25/08/2009
consulté 9880 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0

Description
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
Define Class mapclass As Form
  Height = 573
  Width = 900
  DoCreate = .T.
  Name = "form"
  Caption = "Map form"
  Add Object oweb As OleControl With ;
    Top = 12, ;
    Left = 12, ;
    Height = 468, ;
    Width = 880, ;
    Name = "oWeb", ;
    OleClass = "Shell.Explorer.2"
  Add Object txtpostcode As TextBox With ;
    Height = 25, ;
    Left = 320, ;
    Top = 492, ;
    Width = 96, ;
    Name = "txtPostCode"
  Add Object cmdfind As CommandButton With ;
    Top = 492, ;
    Left = 430, ;
    Height = 27, ;
    Width = 48, ;
    Caption = "OK", ;
    Name = "cmdFind"
  Add Object cbowebsites As ComboBox With ;
    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 As Label With ;
    FontBold = .T., ;
    FontUnderline = .T., ;
    Caption = "Web-site", ;
    Height = 17, ;
    Left = 12, ;
    Top = 492, ;
    Width = 53, ;
    Name = "Label2"
  Add Object label4 As Label With ;
    FontBold = .T., ;
    FontUnderline = .T., ;
    Caption = "Site destination", ;
    Height = 17, ;
    Left = 220, ;
    Top = 492, ;
    Width = 96, ;
    Name = "Label4"
  Procedure Load
    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"
    Do Case
      Case Thisform.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?


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3