Title: <Insert Picture Here>
1ltInsert Picture Heregt
4 Le Géocodage
2Qu'est-ce que le Géocodage?
- Le géocodage reçoit une adresse (rue, numéro) et
retourne des coordonnées (longitude/latitude)
associées à cette adresse. - Le géocodage peut s'effectuer à divers niveaux de
précision - Numéro dans la rue
- Rue seule
- Code postale
- Municipalité
- Le géocodage est fondamental dans la plupart des
applications - Recherches de proximité
- Calculs d'itinéraires
- Cartographie
3Le processus de géocodage
Référentiel de Géocodage
Adresse à convertir
Décodage de l'adresse
Géocodeur
Recherche
Génération des Coordonnées
Coordonnées Adresse Corrigée
4Le Géocodage dans Oracle Spatial 10g
- Les fonctions de géocodage sont incorporées dans
Oracle Spatial 10g - Les algorithmes de géocodage s'exécutent
entièrement dans la base. - Les données nécessaires sont disponibles auprès
de nos partenaires (Navteq, Tele Atlas) - Des jeux de données d'exemple sont mis à
disposition par nos partenaires. Les liens sont
sur OTN - http//otn.oracle.com/products/spatial/index.html
5Fonctions et Données dans la Base
Adresse à convertir
Méta- Données
SDO_GCDR package
Données
Coordonnées Adresse Corrigée
6Le Référentiel
- Tables de Données
- Peuvent contenir plusieurs jeux de données
- Un ou plusieurs pays par jeu de données.
- Tables pour un pays suffixées par le code du pays.
- Tables de Méta-Données
- Décrivent l'organisation des données
- Définissent la structure des adresses et les
règles de décodage.
GC_COUNTRY_PROFILE
GC_PARSER_PROFILE
GC_PARSER_PROFILEAFS
7Les Tables de Méta-Données
- GC_COUNTRY_PROFILE
- Décrit la structure organisationnelle de chaque
pays - Niveaux des unités administratives, langages
- Suffixe des tables contenant les données de ce
pays - GC_PARSER_PROFILEAFS
- Décrit la structure des adresses dans chaque pays
- Notation XML
- GC_PARSER_PROFILES
- Définition de mots clés, synonymes et
abréviations communes - Peut aussi contenir des erreurs d'orthographe
communes
8Les Tables de Données
- GC_ROAD_xx
- Noms des rues et numéros de maisons. Utilisée
pour les recherches de noms. - GC_ROAD_SEGMENT_xx
- Tronçons de voies avec les géométries et les
numéros de maison à chaque extrémité. Utilisée
pour le calcul des coordonnées. - GC_AREA_xx
- Zones administratives avec leur centroïde
- GC_POSTAL_CODE_xx
- Codes postaux avec leur centroïde.
- GC_POI_xx
- Points d'intérêt
- GC_INTERSECTION_xx
- US seulement recherches sur intersection.
9Les Fonctions de Géocodage
- Trois fonctions sont fournies
- SDO_GCDR.GEOCODE_ALL
- Retourne un tableau de SDO_GEO_ADDR lorsque
l'adresse est ambiguë - SDO_GCDR.GEOCODE
- Retourne un objet SDO_GEO_ADDR qui contient
l'adresse corrigée, les coordonnées et des
indications explicatives. - SDO_GCDR.GEOCODE_AS_GEOMETRY
- Retourne un objet SDO_GEOMETRY qui contient
seulement les coordonnées sans aucune autre
indication.
10Syntaxe des fonctions
SDO_GEO_ADDR_ARRAY SDO_GCDR.GEOCODE_ALL (
ltUSER_NAMEgt, ltADDRESS_LINESgt, ltCOUNTRYgt,
ltMATCH_MODEgt)
SDO_GEO_ADDR SDO_GCDR.GEOCODE (
ltUSER_NAMEgt, ltADDRESS_LINESgt, ltCOUNTRYgt,
ltMATCH_MODEgt)
GEOM SDO_GCDR.GEOCODE_AS_GEOMETRY (
ltUSER_NAMEgt, ltADDRESS_LINESgt, ltCOUNTRYgt)
11Paramètres génériques
- ltUSER_NAMEgt
- Le nom du schéma ( utilisateur) propriétaire du
référentiel - ltADDRESS_LINESgt
- L'adresse à convertir sous forme de tableau
SDO_KEYWORDARRAY - ltCOUNTRYgt
- Le code du pays, par exemple 'US, FR, DE
- ltMATCH_MODEgt
- La précision attendue pour le résultat
- GEOCODE_AS_GEOMETRY fonctionne toujours en mode
"DEFAULT"
12Représentation d'une adresse
- ADDRESS_LINES consiste en un tableau de chaînes
de caractères
SDO_KEYWORDARRAY('1718 Desales Street NW',
'Apartment 3G' , 'Washington, DC 20036')
SDO_KEYWORDARRAY('Arabellastraße 6', '81925
München')
SDO_KEYWORDARRAY(73 Boulevard Haussmann', 75008
Paris')
13"Match Mode" la précision demandée
- Le paramètre MATCH_MODE définit la précision
demandée pour le résultat. - EXACT Tous les éléments doivent être trouvés
- RELAX_STREET_TYPE Le type de voie (rue, avenue,
) peut ne pas correspondre - RELAX_POI_NAME Le nom du point d'intérêt peut
ne pas correspondre (par exemple Central Park
Central Pk) - RELAX_HOUSE_NUMBER Le numéro de maison peut ne
pas exister
14"Match Mode" la précision demandée
- RELAX_BASE_NAME ou DEFAULT Le nom et le type de
la voie, ainsi que le numéro de maison peuvent ne
pas correspondre. Par exemple "Crosse Street"
peut correspondre à "Cross Road" - RELAX_POSTAL_CODE - Le nom et le type de la voie,
le numéro de maison ainsi que le code postal
peuvent ne pas correspondre. - RELAX_BUILTUP_AREA ou RELAX_ALL Identique au
cas précédents, avec en plus une correspondance
facultative sur la ville.
15Resultat la structure SDO_GEO_ADDR
- Structure retournée par les fonctions GEOCODE()
et GEOCODE_ALL() - Contient la latitude et longitude de l'adresse,
mais aussi - Des éléments de l'adresse corrigés et/ou
complétés. - Des indications sur la précision et la qualité du
résultat.
16Resultat la structure SDO_GEO_ADDR
Name Type -------------
--------------------- HOUSENUMBER
VARCHAR2(100) BASENAME
VARCHAR2(200) STREETTYPE
VARCHAR2(20) STREETTYPEBEFORE
VARCHAR2(1) STREETTYPEATTACHED
VARCHAR2(1) STREETPREFIX
VARCHAR2(20) STREETSUFFIX
VARCHAR2(20) SIDE
VARCHAR2(1) PERCENT NUMBER EDGEID
NUMBER ERRORMESSAGE
VARCHAR2(20) MATCHCODE NUMBER MATCHMODE
VARCHAR2(30) LONGITUDE
NUMBER LATITUDE NUMBER
Name Type -------------
---------------------- ID
NUMBER ADDRESSLINES MDSYS.SDO_KEYWORDARRAY P
LACENAME VARCHAR2(200) STREETNAME
VARCHAR2(200) INTERSECTSTREET
VARCHAR2(200) SECUNIT
VARCHAR2(200) SETTLEMENT
VARCHAR2(200) MUNICIPALITY
VARCHAR2(200) REGION
VARCHAR2(200) COUNTRY
VARCHAR2(100) POSTALCODE
VARCHAR2(20) POSTALADDONCODE
VARCHAR2(20) FULLPOSTALCODE
VARCHAR2(40) POBOX VARCHAR2(100)
17Éléments de Réponse
- Adresse corrigée
- Accrochage au réseau routier
- Qualité du résultat
- Coordonnées géographiques de ladresse
18Éléments de réponse
- Coordonnées de ladresse
- Qualité du résultat
- Accrochage au réseau
LONGITUDE Longitude
LATITUDE Latitude
ERRORMESSAGE Indication détaillée du résultat
MATCHCODE Précision du résultat
SIDE Côté de la rue
PERCENT Pourcentage (0 à 1) représentant la position relative de l'adresse sur le tronçon.
EDGEID Numéro du tronçon sur lequel l'adresse est positionnée
19Adresse Corrigée
STREET_NAME Nom complet et "officiel" de la rue
SETTLEMENT La ville ou municipalité
REGION La région, province, état, ...
POSTALCODE Le code postal de base
POSTALADDONCODE L'extension du code postal
FULLPOSTALCODE Le code postal complet
HOUSENUMBER Le numéro de maison
BASENAME Le nom de base de la rue GARE dans "126 Rue de la Gare"
STREETTYPE Le type de voie RUE dans "126 Rue de la Gare"
STREETPREFIX Préfixe S dans 123 S Main Street
STREETSUFFIX Suffixe NW dans 123 Main Street NW
20Match Code la précision obtenue
1 Réponse exacte tous les éléments fournis dans l'adresse ont été trouvés.
2 Le nom de la ville, le code postal, le nom de la voie et le numéro de maison ont été trouvés, mais le type de voie ne correspond pas.
3 Le nom de la ville, le code postal et le nom de la voie ont été trouvés, mais le numéro de maison n'existe pas.
4 Le nom de la ville et le code postal ont été trouvés, mais pas le nom de la voie.
10 Le nom de la ville, le nom de la voie et le numéro de maison ont été trouvés, mais le code postal ne correspond pas.
11 Le code postal, le nom de la voie et le numéro de maison ont été trouvés, mais le nom de la ville ne correspond pas.
21Error Message le résultat en détail
- Chaîne de 17 caractères.
- Chaque position est associée à un élément
spécifique de l'adresse. - Chaque caractère indique si cet élément a été
trouvé dans la recherche. - ? indique que l'élément n'a pas été trouvé
- Les positions 1 à 4 ne sont pas utilisées.
22Error Message le résultat en détail
Position Signification Valeur 5 House or
building number 6 Street prefix E 7
Street base name N 8 Street suffix U 9
Street type T 10 Secondary unit S 11
Built-up area or city B 14 Region
1 15 Country C 16 Postal code
P 17 Postal add-on code A
23Exemple Adresse sans numéro
SELECT SDO_GCDR.GEOCODE('SPATIAL',
SDO_KEYWORDARRAY('Clay Street', 'San Francisco,
CA'), 'US', 'DEFAULT') GEO_ADDR FROM DUAL
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(NULL), NULL,
'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL,
'CA', 'US', '94108', NULL, '94108', NULL, '978',
'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', 0,
23600689, '????ENUT?B281CP?', 1, 'DEFAULT',
-122.40904, 37.79385))
MATCHCODE 1 Réponse exacte sur les informations
fournies Positionnement sur le numéro de maison
au "milieu" de Clay St Code postal rempli, nom de
rue corrigé.
24Exemple Adresse avec numéro
SELECT SDO_GCDR.GEOCODE('SPATIAL',
SDO_KEYWORDARRAY('1350 Clay', 'San Francisco,
CA'), 'US', 'DEFAULT') GEO_ADDR FROM DUAL
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(NULL), NULL,
'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL,
'CA', 'US', '94109', NULL, '94109', NULL, '1350',
'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', .49,
23600696, '????ENU??B281CP?', 2, 'DEFAULT',
-122.41522, 37.7930729)
MATCHCODE 2 Type de rue non trouvé Positionnemen
t sur le numéro de maison fourni. Code postal
rempli, nom de la rue complèté.
25Exemple Correction d'adresse
SELECT SDO_GCDR.GEOCODE('SPATIAL',
SDO_KEYWORDARRAY('1350 Clay Avenue', 'San
Francisco, 94119 CA'), 'US', 'DEFAULT')
GEO_ADDR FROM DUAL
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(NULL), NULL,
'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL,
'CA', 'US', '94109', NULL, '94109', NULL, '1350',
'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', .49,
23600696, '????ENU??B281C??', 10, 'DEFAULT',
-122.41522, 37.7930729)
MATCHCODE 10 Code postal non trouvé Positionneme
nt sur le numéro fourni dans Clay St Code postal
et type de voie corrigé
26Exemple Erreur d'Orthographe
SELECT SDO_GCDR.GEOCODE('SPATIAL',
SDO_KEYWORDARRAY('100 VAN NOUSS', 'San Francisco,
CA'), 'US', 'DEFAULT') GEO_ADDR FROM DUAL
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(NULL), NULL,
'VAN NESS AVE', NULL, NULL, 'SAN FRANCISCO',
NULL, 'CA', 'US', '94102', NULL, '94102', NULL,
'100', 'VAN NESS', 'AVE', 'F', 'F', NULL, NULL,
'R', .01, 23619765, '????E?UT?B281CP?', 4,
'DEFAULT', -122.41942, 37.7763488)
MATCHCODE 4 Rue non trouvée Recherche
approximée sur le nom Positionnement sur le
numéro fourni. Code postal ajouté et nom de rue
corrigé
27Exemple Point d'Intérêt (POI)
SELECT SDO_GCDR.GEOCODE('SPATIAL',
SDO_KEYWORDARRAY('Sheraton', 'San Francisco,
CA'), 'US', 'DEFAULT') GEO_ADDR FROM DUAL
SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(NULL), 'SHERATON
PALACE HOTEL', 'NEW MONTGOMERY ST', NULL, NULL,
'SAN FRANCISCO', NULL, 'CALIFORNIA', 'US',
'94105', NULL, '94105', NULL, '2', NULL, NULL,
'F', 'F', NULL, NULL, 'L', 0, 23612131,
'??????????B281CP?', 4, 'DEFAULT', -122.40177,
37.78838))
Le premier POI correspondant au nom donné est
retourné. Adresse complète fournie.
28Résultats multiplesLa fonction geocode_all()
SELECT SDO_GCDR.GEOCODE_ALL('SPATIAL',
SDO_KEYWORDARRAY('Sheraton', 'San Francisco,
CA'), 'US', 'DEFAULT') GEO_ADDR FROM DUAL
SDO_ADDR_ARRAY ( SDO_GEO_ADDR(1,
SDO_KEYWORDARRAY(NULL), 'SHERATON PALACE HOTEL',
'NEW MONTGOMERY ST', NULL, NULL, 'SAN
FRANCISCO', NULL, 'CALIFORNIA', 'US',
'94105', NULL, '94105', NULL, '2', NULL, NULL,
'F', 'F', NULL, NULL, 'L', 0, 23612131,
'??????????B281CP?', 4, 'DEFAULT',
-122.40177, 37.78838), SDO_GEO_ADDR(1,
SDO_KEYWORDARRAY(NULL), 'SHERATON AT FISHERMAN''S
WHARF', 'MASON ST', NULL, NULL, 'SAN
FRANCISCO', NULL, 'CALIFORNIA', 'US',
'94133', NULL, '94133', NULL, '2500', NULL, NULL,
'F', 'F', NULL, NULL, 'R', 0, 23610739,
'??????????B281CP?',4, 'DEFAULT', -122.41355,
37.80659))
29Interface "naïf" geocode_as_geometry()
SELECT SDO_GCDR.GEOCODE_AS_GEOMETRY('SPATIAL',
SDO_KEYWORDARRAY('1350 Clay', 'San Francisco,
CA'), US') FROM DUAL
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-122.41522
, 37.7930729, NULL), NULL, NULL)
Pas de paramètre MATCH_MODE on utilise toujours
le mode par défaut ("DEFAULT") Aucune indication
sur la qualité du résultat.
30Clay St, San Francisco
1250 Clay Street San Francisco CA 94108 Long
-122.41356 Lat 37.7932878
31(No Transcript)