I. Introduction▲
Cet article est destiné aussi bien aux professionnels qu'aux particuliers, qui que vous soyez, quels que soient 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 écrit :
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 trois variables :
Var_adresse = « 1, rue de la halle » ;
Var_code_postale = « 50500 » (numérique ou chaîne 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'utilisation.
Ces limites sont bien assez élevées sans que l'on ait à se faire du souci ;) .
Réalisez votre page Internet :
On ne s'intéresse pas au code ici, je vous ai préparé le minimum pour la géolocalisation.
./src.txtsource de la page html
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▲
API GoogleMaps : http://www.google.com/apis/maps/http://www.google.com/apis/maps/
Pleins d'exemples : http://www.google.com/apis/maps/documentation/index.htmlhttp://www.google.com/apis/maps/documentation/index.html
Un avis? blog developpez
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