Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Ada Algo Assembleur Basic Cobol Fortran LaTeX MATLAB Pascal Perl Prolog Purebasic Réseau Ruby Systèmes XMLRAD

Géolocalisation avec GoogleMaps

Date de publication : 01/08/2007 , Date de mise à jour : 01/08/2007

Par johann Sorel (jsorel.developpez.com)
 

10 minutes pour faire de la géolocalisation. Vous avez tous fait des bases de données contenant l'adresse, le code postal et la ville d'un client ou d'un utilisateur. Grâce à GoogleMaps quelque soit votre langage de programmation vous pouvez accéder à une carte de localisation.

I. Introduction
II. Mise en place
II-A. Solution 1 : GoogleMaps
II-B. Solution 2 : Site privé
II-C. En code
III. Aller plus loin
IV. Remerciements


I. Introduction

Cet article est destiné aussi bien aux professionnels qu'aux particuliers, qui que vous soyez, quelque soit votre logiciel, votre langage de programmation ou vos objectifs. Avec la géolocalisation, vous ne verrez plus vos données comme de simples chaînes de caractères.

Quand dans vos données vous avez ecrit :
1, rue de la halle 50500 Carentan
Vous vous dites intérieurement :
Je sais où cela se situe
mais ne serait- ce pas mieux de le voir sur une carte?
C'est ce que vous pourrez réaliser à la fin de cet article. Et cela est d'une simplicité déconcertante.


II. Mise en place


II-A. Solution 1 : GoogleMaps

Imaginons que vous récupériez vos données dans 3 variables :

Var_adresse = "1, rue de la halle"
Var_code_postale = 50500 (numérique ou chaine de caractères)
Var_ville = "Carentan"


Il ne reste qu'à ouvrir la page GoogleMaps avec en paramètre l'adresse complète :

http://maps.google.fr/maps?f=q&hl=fr&q=" + [Var_adresse] + ",+" + [Var_code_postale] + "+" + [Var_ville]

On obtient alors ceci :





II-B. Solution 2 : Site privé

Si vous souhaitez personnaliser la page de présentation de la carte il faut en faire un peu plus.
Il faut vous enregistrer sur le site de GoogleMaps à l'adresse suivante :
www.google.com/apis/maps/

Cela réalisé, il vous est fourni une clé pour votre site internet.
Exemple de clé : ABQIAAAA0KugCnqcqLJ09PA_sX2_9hScn1mTv06jk0Txmd5LCTJdcw_MTBQ0EZox4SePGdLbXEZtFP8_CBnxpQ
Celle- ci n'est valable que pour une adresse et avec certaines limites d'utilisations.
Ces limites sont bien assez élevées sans que l'on est à se faire du souci ;) .


Réalisez votre page internet:
On ne s'interesse pas au code ici, je vous ai préparé le minimum pour la géolocalisation.
src ftp://ftp-developpez.com/jsorel/tutoriels/sig/googlemaps1/src.txt

Puis changez la clé sur la ligne :

<script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAA0KugCnqcqLJ09PA_sX2_9hScn1mTv06jk0Txmd5LCTJdcw_MTBQ0EZox4SePGdLbXEZtFP8_CBnxpQ" type="text/javascript"></script>    				
Ce code affichera une page contenant uniquement la carte :




Et envoyez sur votre site internet.

Le passage de l'adresse est légèrement différent pour cette page :
http://www.mon-site.fr/googlemapmini.html?adresse= + v_adresse + " , " + v_cp + " " + v_ville



II-C. En code

Code Java (1.6 ou JDIC) :

public static void search(String address, String zipcode, String city) {
    String scheme = "http";
    String authority = "maps.google.fr";
    String path = "/maps";
    String query = "f=q&hl=fr&q=" + address+ " , " + zipcode + " " + city ;
    if(Desktop.isDesktopSupported()) {
        if(Desktop.getDesktop().isSupported(java.awt.Desktop.Action.BROWSE)) {
            try {
                URI uri = new URI(scheme, authority, path, query, null);
                System.out.println(uri.toASCIIString());
                java.awt.Desktop.getDesktop().browse(uri);
            } catch (URISyntaxException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        } else {
            //La fonction n'est pas supportée par votre système d'exploitation
        }
    } else {
        //Desktop pas supportée par votre système d'exploitation
    }
}
Code C++ (avec Qt 4.2) :

#include <QDesktopServices>
#include <QUrl>

void Search( const QString & Address, const QString & ZipCode, const QString & City )
{
    QUrl url = QString( "http://maps.google.fr/maps?f=q&hl=fr&q=%1,+%2+%3" )
        .arg( Address )
        .arg( ZipCode )
        .arg( City );

    if ( !QDesktopServices::openUrl( url ) )
    {
        // echec
    }
}
Code VB :

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    
    
Private Sub search(v_adresse As String, v_cp As String, v_ville As String)
    
    Dim v_http As String
    v_http = "http://maps.google.fr/maps?f=q&hl=fr&q="
    v_http = v_http & v_adresse & " ,+ " & v_cp & "+" & v_ville
                                
    On Error GoTo err_connexion:
    ShellExecute Me.hwnd, "open", v_http, "", App.Path, 1
    Exit Sub
 
err_connexion:
    MsgBox "Impossible de se connecter au site GoogleMaps"
 
End Sub
Code VBA :

Private Sub search(v_adresse as String, v_cp as String, v_ville as String)
    
    Dim v_http As String
    v_http = "http://maps.google.fr/maps?f=q&hl=fr&q="
    v_http = v_http & v_adresse & " ,+ " & v_cp & "+" & v_ville
                                
    On Error GoTo err_connexion:
    FollowHyperlink (v_http)
    'ThisWorkbook.FollowHyperlink pour Excel
	'ThisDocument.FollowHyperlink pour Word

    ExitSub

err_connexion:
	MsgBox "Impossible de se connecter au site GoogleMaps"   

End Sub
Code PHP :
<?php 
$address = "1, rue de la halle";
$postalCode = 50500;
$city = "Carentan";
$url = 'http://maps.google.fr/maps?f=q&hl=fr&q='.urlencode($address).','.urlencode(' '.$postalCode.' '.$city);
 
header('HTTP/1.1 204 No Content');
header('Location: '.$url);
 
?>
Code Delphi :

procedure Search(const Adresse : string; const CP : string;
  const Ville : string);
var URL : string;
begin
  URL := 'http://maps.google.fr/maps?f=q&hl=fr&q=';
  URL := URL + Adresse + ' ,+ ' + CP + '+' + Ville;
  ShellExecute(GetDesktopWindow(), 'open', PChar(URL),
    nil, nil, SW_SHOWNORMAL);
end;
Code Python :

import webbrowser
 
def search(address, zipcode, city):
    url = 'http://maps.google.fr/maps?f=q&hl=fr&q=' + address + ', ' + str(zipcode) + ' ' + city
    webbrowser.open_new(url)
 
address = "1, rue de la halle"
zipcode = 50500
city = "Carentan"
search(address, zipcode, city)
Code WinDev :

PROCEDURE searchWD(v_adresse est une chaîne, v_cp est une chaîne, v_ville est une chaîne)
v_http est une chaîne

v_http = ChaîneConstruit("http://maps.google.fr/maps?f=q&hl=fr&q=%1 ,%2+%3", v_adresse , v_cp , v_ville)

LanceAppliAssociée(v_http)

III. Aller plus loin



IV. Remerciements

Laurent Alborino
Pascal Lambert
Yann D'Isanto : Java, Python
Aurélien Regat-Barrel : C++
bbil : VB
Sébastien Doeraene : Delphi
Guillaume Rossolini : PHP
Emmanuel Lecoester : WinDev



Valid XHTML 1.1!Valid CSS!

Copyright © 27/07/2007 Johann sorel. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsables bénévoles de la rubrique Autres : Nicolas Vallée (gorgonite) et Guillaume Rossolini (Yogui) - Contacter par EMail :
Vos questions techniques : forum d'entraide Autres - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.