Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Après avoir introduit les différents types d’éléments géographiques disponibles au sein de SQL Server et en abordant leurs déclarations et les règles de définition associées, nous allons pouvoir enfin tirer partie du meilleur en utilisant les méthodes spatiales spécifiques à ce type de données.

SQL Server geography 2008 et 2012 et SQL Azure - Presentation des méthodes standards OGC telles que STUnion(), STBuffer(), STSymDifference()...

Cet article s’incrit dans la série dédiée à l’explication du type géographique au sein de SQL Server 2008, 2012 et Azure.

Retrouvez les anciens articles sur le même sujet :

 

Standards et systèmes d’information géographiques (SIG)

OGC logoLes standards sont établis par l’OGC (Open Geospatial Consortium) et définissent un comportement, un prototype et un résultat pour les méthodes que nous allons découvrir ici.

Afin d’obtenir davantage d’informations sur les standards et sur la définition de ces méthodes, n’hésitez pas à parcourir les liens suivants :

Il est important de rappeler qu’il existe de nombreux serveurs de base de données permettant de stocker ces éléments géographiques, on parle souvent de serveur de base de données spatiales.

Voici les principaux serveurs de base de données en question :

  • Oracle Spatial
  • IMB DB2
  • Microsoft SQL Server 2008 et supérieur
  • Postgre SQL

Attention, il est important de différencier le serveur de base de données ayant le support de types spatiaux et les systèmes d’information géographiques complets.

SQL Server 2008 et 2010 SIG Systeme d'information géographique

En effet, ces solutions intègrent la plupart du temps des services complémentaires ou des modèles d’exposition de données qui dépasse la simple restitution sous forme d’enregistrement de tables (ex : WMS, WMS avec cache, capacité de géocodage, calcul d’itinéraire avec contraintes…).

 

Présentation des méthodes

Il existe donc plusieurs méthodes standards que tout serveur qui se dit ‘spatial’ doit pouvoir executer en restituant des résultats cohérents.

Ces méthodes sont les suivantes :

Méthodes Description rapide
STArea() Calcul de l’aire
STAsBinary() Représentation binaire (WKB)
STAsText() Représentation textuelle (WKT)
STBuffer() Tampon autour des données
STDifference() Difference entre une technologie et une autre
STDimension() Nombre de dimension
STDisjoint() Liaison entres les géométries
STDistance() Distance entre les géométries
STEndPoint() Dernier point de la géométrie
STGeometryN() Point identifié (n) sur la géométrie
STGeometryType() Type de géométrie
STIntersection() Géométrie d’intersection entre géométries
STIntersects() Vérification de l’intersection entre géométries
STIsClosed() Fermeture de la géométrie
STIsEmpty() Possède une données
STLength() Longueur d’une géométrie
STNumGeometries() Nombre de géométries composants
STNumPoints() Nombre de points composants au total
STPointN() Point identifié (n) de la géométrie
STSrid() SRID de la géométrie
STStartPoint() Premier point de la géométrie
STSymDifference() Différence symétrique entre 2 géométries
STUnion() Union entre géométries

Il existe également plusieur méthodes statiques standards qui sont abordées dans cet article.

MSDN SQL Server Geography bonnes pratiques et utilisationsBien entendu, il est tout à fait possible d’utiliser ces méthodes qui sont implémentées dans SQL Server 2008 et supérieure (2012 ‘Denali’) avec les types géographiques ou géométriques :
http://msdn.microsoft.com/en-us/library/bb933914.aspx

 

Implémentation technique dans SQL Server

Afin de comprendre l’intérêt de ces méthodes, il faut se mettre dans la situation où nous souhaitons localiser des éléments, des zones ou des lignes référencée géographiquement et parmis lesquels nous souhaitons réaliser plusieurs opérations de tri, de sélection ou filtre ou bien même d’aggrégation.

Ici nous n’aborderons pas les précédentes solutions qu’il nous fallait réaliser en SQL Server 2005, mais nous pouvons très rapidement comprendre l’intérêt de l’utilisation de ces méthodes en termes de développement, mais aussi en termes de performances puisque le moteur SQL Server inclut de manière native ces méthodes et se révèle donc particulièrement rapide.

On remarque, dans l’implémentation SQL Server, le préfixe de ces méthodes “ST” différenciant ainsi ces méthodes de celles spécifiques que nous aborderons dans un prochain article.

 

  • Méthodes de calcul sur les éléments

    • Calcul de distance : STDistance

Description :

Cette méthode permet de calculer la distance la plus courte qui sépare deux éléments en tenant bien évidemment compte de la distance réelle en fonction du référentiel dans lequel on travaille. Il s’agit donc de la longueur de la ligne géodésique liant les éléments concernés renvoyée en mètre.

Schéma descriptif :

STDistance() Explication

Implémentation SQL Server :

Voici l’implémentation d’exemple utilisant 2 points comme éléments :

--STDistance
DECLARE @pointA AS GEOGRAPHY
SET @pointA = GEOGRAPHY::STGeomFromText('POINT(4 45)', 4326);
DECLARE @pointB AS GEOGRAPHY
SET @pointB = GEOGRAPHY::STGeomFromText('POINT(3 44)', 4326);
SELECT @pointA.STDistance(@pointB) as 'Distance'

Résultat :

STDistance resultat de l'execution SQL Server

 

    • Calcul de la longueur d’un élément : STLength

Description :

Cette méthode permet de calculer la longueur d’un élément défini et retourne le résultat en mètre.

Note : La longueur d’un point retourne 0.

Cas pratiques :

- Longueur du Tour de France : distance parcourue

Schéma descriptif :

STLength() sql geography description

 

Implémentation SQL Server :

--STLength
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line as 'Line', @line.STLength() as 'Length'

Résultat :

STLength() resultat geography

STLength() resultat geography

 

    • Calcul de l’aire : STArea

Description :

Cette méthode permets de calculer l’aire d’un élément tel qu’un polygon ou un élément complexe.

Note : L’aire d’un point ou d’une ligne vaut 0.

Cas pratiques :

- Aire d’une parcelle cadastrale
- Surface boisée en France

Schéma descriptif :

STArea() sql geography

 

Implémentation SQL Server :

--STArea
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STArea() as 'Area'

Résultat :

STArea() resultat geography

STArea() resultat geography

 

  • Méthodes de parcours ou manipulation des propriétés des éléments

    • Détermination du point de départ de l’élément : STStartPoint

Description :

Cette méthode permet de retourner le premier point (géométrie) d’une géométrie définie.

Note : La méthode renvoie le point concerné dans le cas où la géométrie correspond à un simple point.

Schéma descriptif :

STStartPoint() description details

Implémentation SQL Server :

--STStartPoint
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STStartPoint().ToString() as 'StartPoint'

Résultat :

STStartPoint() geography resultat

On remarque donc qu’il s’agit bien du premier point défini dans la déclaration de la géométrie de type polygone.

 

    • Détermination du dernier point de l’élément : STEndPoint

Description :

Cette méthode retourne sur le même principe que la méthode précédente, le dernier point défini dans la géométrie.

Note : Dans le cas d’un point, cette méthode retounr le point correspondant à la géométrie. Dans le cas d’un polygone, on observera souvent le même résultat que la méthode STStartPoint() tout simplement parce que la géométrie d’un polygone doit être fermée et par conséquent le point de définition initial est le même que le point final.

Schéma descriptif :

STEndPoint() description sql geography

 

Implémentation SQL Server :

--STEndPoint
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line as 'Line', @line.STEndPoint().ToString() as 'EndPoint'

Résultat :

STEndPoint() geography resultat

 

    • Récupération du nombre de points de l’élément : STNumPoints

Description :

Cette méthode retourne le nombre de point composant la géométrie définie.

Note : Dans le cas d’un point, la méthode retourne 1.

Schéma descriptif :

STNumPoints() sql geography

 

Implémentation SQL Server :

--STNumPoints
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STNumPoints() as 'NumPoints'

Résultat :

STNumPoints() resultat geography

 

    • Récupération d’un point spécifique : STPointN

Description :

Cette méthode permet de récupérer un point particulier déterminé par son index, composant la géométrie.

Note : l’index noté N est un entier et commence à 1. Par conséquent STPointN(1) équivaut à STStartPoint().

Schéma descriptif :

STPointN() sql geography

 

Implémentation SQL Server :

--STPointN
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STPointN(1).ToString() as 'STPointN'

Résultat :

STPointN() result geography

 

    • Récupération du type d’élément : STGeometryType

Description :

Cette méthode renvoie le type de géométrie qui est associé à l’élément défini. Ce type peut donc correspondre aux différents présentés dans les articles précédents de cette série : Point, linestring, polygon ou collections…

Schéma descriptif :

image

Implémentation SQL Server :

--STGeometryType
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STGeometryType() as 'Type'

Résultat :

STGeometryType() resultat geography

 

    • Récupération d’une géométrie spécifique de l’élément : STGeometryN

Description :

Cette méthode est très utile dans le cas de collection de géométrie car elle permet de renvoyer une instance géométrique de cette collection. Il devient par exemple possible de récupérer le N-ième élément d’une collection de géométrie et donc potentiellement de récupérer les inner-rings d’un polygone dit “à trous”.

Schéma descriptif :

STGeometryN()

Implémentation SQL Server :

--STGeometryN
DECLARE @multipolygon AS GEOGRAPHY
SET @multipolygon = GEOGRAPHY::STGeomFromText('MULTIPOLYGON(((3 45,4 45,4 46,3 45)),((5 46,6 47,5 47,5 46)))',4326)
SELECT @multipolygon, @multipolygon.STGeometryN(2) as 'SecondGeometry'

Résultat :

STGeometryN() resultat sql geography

 

    • Récupération du nombre de dimension associée à la représentation de l’élément (2D ou 3D) : STDimension

Description :

Cette méthode retourne le nombre de dimension associée à la représentation de l’élément, ainsi une surface s’incrivant dans un plan simple comportera logiquement 2 dimensions, tandis que si l’on définit cette surface avec des points indiquant l’altitude (la valeur Z) on obtiendra 3 dimensions.

Implémentation SQL Server :

--STDimension
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line as 'Line', @line.STDimension() as 'Dimension'
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon as 'Polygon', @polygon.STDimension() as 'Dimension'

Résultat :

STDimension() resultat sql geography

 

    • Récupération du SRID associé : STSrid

Description :

Cette méthode retourne l’identifiant du référentiel spatial utilisé (SRID) et qui permet de définir l’élément.

Implémentation SQL Server :

--STSrid
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line as 'Line', @line.STSrid as 'SRID'

Résultat :

STSrid resultat sql geography geometry

 

  • Méthodes de relations entre les éléments

    • Vérification d’intersection : STIntersects

Description :

Cette méthode vérifie l’intersection entre deux géométries utilisées. Elle retourne True si les géométries présentent une intersection.

Cas pratiques :

- Vérification de l’existence d’une intersection
- Détection de points communs entre deux géométries

Schéma descriptif :

STIntersects() sql server geography

 

Implémentation SQL Server :

--STIntersects
DECLARE @polygonA AS GEOGRAPHY, @polygonB AS GEOGRAPHY
SET @polygonA = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SET @polygonB = GEOGRAPHY::STGeomFromText('POLYGON((3 44,4 44,4 45,3 44))', 4326);
SELECT @polygonA.STIntersects(@polygonB) AS 'Intersects'

Résultat :

STIntersects sql geography

 

    • Détermination de l’intersection : STIntersection

Description :

La méthode STIntersection() retourne la ou les géométries correspondant à l’intersection entre deux géométries utilisées.

Cas pratiques :

- Recherche polygonale
- Zone concernée par un projet de construction ou d’urbanisme

Schéma descriptif :

STIntersection() sql geography precision et description

 

Implémentation SQL Server :

--STIntersection
DECLARE @polygonA AS GEOGRAPHY, @polygonB AS GEOGRAPHY
SET @polygonA = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SET @polygonB = GEOGRAPHY::STGeomFromText('POLYGON((3 44,4 44,4 45,3 44))', 4326);
SELECT @polygonA.STIntersection(@polygonB) AS 'Intersection'
UNION ALL SELECT @polygonA
UNION ALL SELECT @polygonB

Résultat :

STIntersection sql geography

 

    • Différence entre deux éléments : STDifference

Description :

Cette méthode permets d’obtenir la géométrie correspondant à la partie de la géométrie n’étant pas en intersection avec une seconde géométrie.

Cas pratiques :

- Surface non détruite par un événément climatique
- Tronçon de route non concerné par une zone travaux

Schéma descriptif :

STDifference() sql server geography

 

Implémentation SQL Server :

--STDifference
DECLARE @polygonA AS GEOGRAPHY, @polygonB AS GEOGRAPHY
SET @polygonA = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SET @polygonB = GEOGRAPHY::STGeomFromText('POLYGON((3 44,4 44,4 45,3 44))', 4326);
SELECT @polygonA.STDifference(@polygonB) AS 'Difference A from B'

Résultats :

image

 

    • Différence symétrique entre deux éléments : STSymDifference

Description :

Cette méthode permet de récupérer la différence symétrique entre deux géographies. En clair, la méthode permet de récupérer tout ce qui n’est pas commun aux deux géométries utilisées.

Cas pratiques :

- Zone couverte par un seul opérateur mobile
- Extraction de points distincts (non-communs entre 2 collections de points)

Schéma descriptif :

STSymDifference() sql server geography

Implémentation SQL Server :

--STSymDifference
DECLARE @polygonA AS GEOGRAPHY, @polygonB AS GEOGRAPHY
SET @polygonA = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SET @polygonB = GEOGRAPHY::STGeomFromText('POLYGON((3 44,4 44,4 45,3 44))', 4326);
SELECT @polygonA.STSymDifference(@polygonB) AS 'SymDifference'

Résultats :

STSymDifferenc() stsymdifference between a and b sql server geography (SQL Server 2012)

 

 

    • Combinaison avec un autre élément : STUnion

Description :

Cette méthode permet de récupérer la géométrie résultant de l’union des deux géographies.

Cas pratiques :

- Couverture géographique et aérienne cumulée
- Ensemble des batis d’un projet immobilier

Schéma descriptif :

STUnion() resultat sql geography

 

Implémentation SQL Server :

--STUnion
DECLARE @polygonA AS GEOGRAPHY, @polygonB AS GEOGRAPHY
SET @polygonA = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SET @polygonB = GEOGRAPHY::STGeomFromText('POLYGON((3 44,4 44,4 45,3 44))', 4326);
SELECT @polygonA.STUnion(@polygonB) AS 'Union'

Résultat :

STUnion() sql geography

 

  • Méthodes de transformation d’éléments

    • Transformation en représentation binaire WKB : STAsBinary

Description :

Cette méthode permet de renvoyer la valeur de la colonne sous forme de binaire sous forme de Well Known Binary (WKB)

Implémentation SQL Server :

--STAsBinary
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon.STAsBinary() AS 'WKB'

Résultat :

STAsBinary() sql geography

 

    • Transformation en représentation textuelle WKT : STAsText

Description :

Comme la précédente, cette méthode permet de renvoyer la valeur modifiée mais cette fois-ci sous forme textuelle Well Known Text (WKT).

Implémentation SQL Server :

--STAsText
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon.STAsText() AS 'WKT'

Résultat :

STAsText() sql geography

 

    • Création d’un buffer autour de l’élément : STBuffer

Description :

Cette méthode permet de composer une autre géométrie tampon autour de celle d’origine en utilisant une distance passée en paramètre.

Cas pratiques :

- Création d’une zone de recherche à vol d’oiseau autour d’un point spécifique 
- Création d’un corridor de recherche

Schéma descriptif :

STBuffer() sql server geography

 

Implémentation SQL Server :

--STBuffer
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line.STBuffer(5000) AS 'Buffer'
DECLARE @polygon AS GEOGRAPHY
SET @polygon = GEOGRAPHY::STGeomFromText('POLYGON((3 45,4 44,4 45,3 45))', 4326);
SELECT @polygon.STBuffer(5000) AS 'Buffer'

Résultat :

STBuffer() sql geography buffer (tampon)

 

  • Méthodes statiques sur le type géographique

    • Création d’un élément à partir de la représentation textuelle connue – WKT : STGeomFromText

Description :

Cette méthode statique permet d’initialiser la valeur d’une colonne géographique à partir de la définition WKT.

Implémentation SQL Server :

--STGeomFromText
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromText('LINESTRING(3 45,4 45,4 44)', 4326);
SELECT @line.STAsBinary() AS 'Line WKB', @line as 'Line'
Résultat :

STGeomFromText() resultat sql geography geometry

 

    • Création d’un élément à partir de la représentation binaire connue – WKB : STGeomFromWKB

Description :

Dans le même esprit que la méthode précédente, cette méthode statique permet d’initialiser la valeur d’une colonne géographique ou géométrique à partir de la définition WKB.

Implémentation SQL Server :

--STGeomFromWKB
DECLARE @line AS GEOGRAPHY
SET @line = GEOGRAPHY::STGeomFromWKB(0x010200000………000004640, 4326);
SELECT @line AS 'Line', @line.STAsText() AS 'WKT'

Résultat :

STGeomFromWKB() resultat sql geography geometry

 

Conclusions

Ces méthodes et les possibilités offertes par ces opérations sur les données montrent une fois de plus l’intérêt de l’utilisation de ce type géographique (ou bien même le type géométrique) surtout dans leurs utilisations combinées.

En effet, en l’absence de type géographique ou géométrique ou en cas de non-utilisation de ces types, il devient nécessaire d’utiliser des formules de calcul coûteuses et certainement approximatives et délicates à écrire (ex : calcul de surface d’une géométrie multiples, génération du buffer d’une zone) pour obtenir des résultats exploitables et précis alors qu’ici en utilisant le moteur SQL Server, ces méthodes sont présentes et conformes aux standards imposés et directement utilisables sur ces types.

Dans un prochain article nous nous intéresserons aux méthodes spécifiques à SQL Server (méthodes non standards) et nous analyserons avec précision les performances de chacunes de ces opérations.

La plateforme Bing Maps for Enterprise nécessite une licence qui doit être choisie ou qui est attribuée avec soin en fonction du type d’application dans laquelle on intègre la plateforme.

A travers cet article nous allons donc aborder le point des licences disponibles pour l’utilisation de la plateforme Bing Maps for Enterprise.

Licence Bing Maps - Transaction et session - description du fonctionnement de Bing Maps

imageCet article n’aborde pas les informations tarifaires et ne se veut pas être le remplacement des informations plus précises qu’il est possible d’obtenir directement auprès des équipes Microsoft.

Il fournit un premier niveau d’information qui saura vous aider et vous donner de bons indicateurs sur les types de licence disponibles et celle qui sera à choisir ou qui vous sera associée et le fonctionnement technique de la plateforme au niveau de la facturation qui est liée.

 

Système d’authentification

Chaque requête ou chaque chargement d’une carte effectue une requête vers les services de la plateforme Bing Maps qui permets de comptabiliser chaque opération de consommation des services ou d’utilisation du contrôle.

L’authentification est réalisé en utilisant une clé d’application qui indique le contrat lié, en complément de cette information, l’URL du site appelant (dans le cas d’intégration Web) est utilisé ainsi que l’adresse IP d’appel. Cela permets notamment à Microsoft d’identifier les appels illicites.

Transaction et session - description du fonctionnement de Bing Maps

Pour récupérer une clé d’authentification, il faut se rendre sur le portail Bing Maps for Enterprise (Account Center) et une fois identifié à l’aide d’un compte associé à un live ID, il est possible de générer des clés pour les applications : http://www.bingmapsportal.com/

Par défaut, il est possible de générer 5 clés associées par compte identifié et associé à un Live ID. Il est possible d’excéder cette limite avec les licences entreprise et selon les accords de licences et après avoir contacté Microsoft via mpnet@microsoft.com.

Bing Maps Account Center - Generation des clés Bing Maps (Bing Maps Key generation)

 

Sessions et transactions

Au delà même des types de licence, on retrouve une unité qui comptabilise les sessions et les transactions. Il est donc nécessaire d’éclaircir les points concernant ces 2 types d’intéractions.

  • La transaction

Une transaction correspond à un appel à la plateforme quel qu’il soit que ce soit le chargement d’un contrôle (AJAX ou Silverlight), l’appel aux Web Services ou à des services tiers.

Il existe des transactions facturables et non-facturables, le statut est défini en fonction du contexte d’utilisation. Voici le détail permettant de différencier les transactions facturables et donc comptabilisés et celles non-facturables qui ne sont comptabilisées que pour information.

Bing Maps licence et transaction facturable ou non facturable en fonction de l'utilisation
Détails complets disponibles ici : http://www.boonaert.net/documents/BingMaps/Bing%20Maps%20-%20Transaction%20information.xlsx

Source: http://msdn.microsoft.com/en-us/library/ff859477.aspx

 

  • La session

Une session correspond au chargement du contrôle AJAX ou Silverlight qui est donc généralement associé au chargement de la page.

Au sein d’une session, il est possible d’effectuer des déplacements sur la carte, des changements de niveaux de zoom mais également des appels au Web Services pour géocoder des lieux, calculer des itinéraires ou bien résoudre des adresses.

L’ensemble de ces intéractions réalisées dans le cadre d’une session est comptabilisé comme des transactions non-facturables car associée à une session et non incrémentées de manière individuelle.

 

Différents types de licencesLicence Bing Maps for Enterprise

Afin de s’adapter le plus facilement au besoin client, la plateforme propose plusieurs types de licences dont voici la présentation complète issue des informations disponibles sur le site officiel :
http://www.microsoft.com/maps/product/licensing.aspx

 

  • Licence développeur

Ce type de licence ne permet pas une utilisation dans une application mise en production quelle qu’elle soit. Elle permet d’assurer un développement dans les mêmes conditions que la réalisation finale.

Avec cette licence, le développeur ou l’équipe utilisant la même clé, possède une limite de 500 000 transactions ou 125 000 sessions pour une période d’un an.

Ce type de licence donne accès à l’ensemble de la plateforme et des contenus.

 

  • Licence entreprise

Licence entreprise par utilisateurs nommés

Dans cette configuration, il faut au préalable connaître le nombre d’utilisateurs de votre application exploitant la plateforme Bing Maps for Enterprise.

Avec ce type de licence, il est alors possible d’effectuer un nombre d’appels non-limités par utilisateurs ce qui permets d’afficher autant de cartes que souhaités ou d’effectuer autant d’appel que souhaité vers les Web Services.

Il s’agit d’un contrat à transactions illimitées pour un nombre fini et connu d’utilisateur, ce nombre doit être communiqué à Microsoft et c’est une informations determinant le coût associé à l’utilisation de la plateforme.

 

Licence entreprise par transaction

Cette licence correspond à un nombre fini de transactions / sessions établi pour une période de mois déterminés par le contrat (par exemple 500 000 transactions pour une période de 12 mois).

Les transactions sont comptabilisés comme expliqué précédemment.

 

Licence entreprise par équipement de suivi

Lors d’utilisation de la plateforme Bing Maps for Enterprise dans le cadre de suivi de flotte, il existe un modèle de licence adapté permettant d’exploiter parfaitement la plateforme pour effectuer des appels illimités aux services et de suivre les éléments sur une carte interactive.

Ce type de licence donne accès à l’ensemble de la plateforme ainsi qu’aux divers contenus sans restriction particulière.

  • Licence pour application mobile

Bing Maps iPhone, iPad, Android et WP7 licenceCette licence est dédiée aux applications mobiles publiques distribuées à travers les MarketPlaces ou AppStore.

L’exploitation de la plateforme peut être réalisée depuis une version mobile du site ou depuis les différents SDK :

Ce type de licence donne plein accès à l’ensemble de la plateforme et aux différents contenus disponibles à l’exception des contenus liés au informations de traffic routier.

 

  • Licence pour organisation à but non-lucratif

Les organisations à but non-lucratif ou les associations peuvent bénéficier d’une licence gratuite leur permettant d’accèder à la plateforme et au contenu disponibles excepté le contenu en vue oblique (Bird’s eye view).

L’implémentation doit être réalisé sur un site publiquement accessible, l’accès à la carte ne doit pas être protégé par un mot de passe.

 

  • Licence pour l’éducation

Cette licence est réservé aux institutions d’éducation telle que les collèges, les lycées ou universités qui souhaiterait l’utiliser pour des projets d’études à but non commercial (but d’éduction/formation).

L’implémentation doit être réalisé sur un site publiquement accessible, l’accès à la carte ne doit pas être protégé par un mot de passe.

Cette licence donne accès à l’ensemble des fonctionnalités et contenu de la plateforme exceptés les contenus de traffic et l’imagerie en vues obliques.

 

  • Licence pour les diffuseurs et annonceurs (Broadcast)

Les contenus et la plateforme peuvent être exploités et présentés en télévision ou cinéma de manière gratuite sous formes de vidéos et images.
Sous certaines conditions qu’il est nécessaire d’étudier aves les équipes de Microsoft, il est également possible d’utiliser cette licence pour intégrer les composants sur un site Internet.

Cette licence donne accès à l’ensemble des fonctionnalités et des contenus exceptées les informations de traffic.

 

Autres cas d’utilisation

Les autres cas d’utilisation sont rares mais peuvent intervenir, je pense notamment au cas des organismes publiques ou gouvernementales qui sont soumis à des conditions particulières : http://www.microsoft.com/maps/product/licensing_for_government.aspx

A noter que certains autres cas peuvent ne pas entrer dans les modes de licences décris plus tôt, il faut alors en discuter avec l’équipe Bing Maps qui pourra estimer si le cas présenté peut entrer ou non dans une des licences précédentes ou s’il faut convenir d’un contrat adapté au besoin.

En résumé, si votre utilisation n’entre pas dans les licences décrites plus haut, il ne faut pas hésiter à contacter l’équipe dédiée qui pourra vous accompagner et trouver une solution adaptée et même vous proposer une discussion technique au besoin.

 Informations sur les licences et droits d'utilisation de Bing Maps et les cas particuliers pour les organismes publiques

Remarques

Afin d’être cohérent et surtout efficace, il faut rester logique et utiliser au mieux la plateforme.

J’entends par là, dans le cas où par exemple, on souhaite géocoder un très grand nombre de point il faut considèrer l’utilisation du service de géocodage en masse (en batch) déjà présenté à travers l’article disponible via ce lien : http://blogs.developpeur.org/nicoboo/archive/2011/06/20/bing-maps-for-enterprise-presentation-technique-du-service-de-g-ocodage-en-batch.aspx

En effet, l’appel successif ou récursif de la plateforme de manière massive n’apportent aucun gain par rapport à cette méthode, et même si l’on se retrouve dans un scénario de possibilité d’appels sans limites aux Web Services, il est bien souvent plus intéressant d’optimiser ces appels pour réduire la charge globale de l’application.

Aussi, le cas particulier de l’utilisation du service Spatial de la plateforme n’est pas présenté ici. Il est soumis à une utilisation adaptée :

 Choisir sa licence Bing Maps - explication

Comment choisir ?

Afin de choisir le meilleur mode de licence adapté à votre solution, il est recommandé d’analyser plusieurs points que je choisis de regrouper ici :

  • L’implémentation technique

Il faut savoir que dans la plupart des cas c’est l’implémentation technique qui détermine le type de licence à utiliser. En effet, l’accessibilité du site, les solutions techniques utilisées présentent forcément des contraintes qui déterminent le modèle de licence.

  • Le profil d’utilisation

Il est cependant important de comprendre comment les utilisateurs vont utiliser votre application car au-delà du simple fait d’optimisation de l’interface ou de présentation au sein de la solution développée, on peut très facilement obtenir une estimation approximative concernant les statistiques d’utilisation.

Le profil d’utilisateur établi permet en effet de pouvoir faire des estimations plus précises quant à l’utilisation global de la plateforme et dans le même temps.

  • Les besoins et contraintes techniques, métiers et budgétaires

Les besoins exprimés et les contraintes que l’on applique à votre application implémentant la plateforme Bing Maps for Enterprise vont également guider le choix de la licence.

Les besoins sont la pièce maitresse de la décision car elle dirige en réalité les points précédents. Mais lors des phases d’analyse de ces besoins, on peut conserver certains points en tête afin de s’organiser de manière à garantir le meilleur résultat.

Le besoin principal lorsque l’on traite de cartographie interactive concerne bien évidemment l’interactivité finale de l’application que l’on souhaite maximiser, imaginons un instant que nous souhaitons réaliser une application Web à destination des partenaires externes.
Sur l’interface vous souhaitez présenter un nombre important de point de distribution. Il sera bien évidemment préférable d’effectuer le géoréférencement des éléments en amont de la présentation sur la carte et pourquoi pas utiliser le géocodage de masse pour aider à apporter de la pertinence aux résultats. L’affichage des points n’en sera que plus rapide.

Dans la plupart des cas, Microsoft et son équipe dédiée au produit saura vous assister dans la décision à prendre concernant la licence.

 Contact commercial, produit et technique de Bing Maps

Qui contacter ?

  • Les contacts commerciaux et produit

Microsoft, c’est aussi et avant tout une équipe dédiée au niveau France et Europe pour accompagner les clients dans les choix mais aussi dans l’implémentation technique.

Cette équipe accompagne les clients et informe les sociétés intéressées par la plateforme en fournissant en général une présentation adaptée.

Si vous souhaitez contacter les équipes commerciales directement via le formulaire de contact suivant : https://support.microsoft.com/contactus/emailcontact.aspx?scid=sw;en;1327&WS=virtualearth

D’une manière générale, pour les questions concernant la plateforme, vous pouvez utiliser les adresses communiquées suivantes :

Pour les informations concernant les licences et les droits d’utilisation, il est possible de contacter l’adresse suivante : maplic@microsoft.com

 

  • Utiliser votre contact existant avec Microsoft

Dans le cas où vous travaillez déjà avec Microsoft, il est possible de revenir directement via votre account manager (PAM) ou votre revendeur qui pourra faire suivre la demande d’information vers les équipes Bing Maps.

 

  • Le support technique en France

Je remplis avec mon équipe au sein de Wygwam, ce rôle de support technique pour les pays francophones européens et donc agis en tant que V-TSP – Technical Support Partner pour la France, la Suisse et la Belgique.

V-TSP Bing Maps - Support technique Bing Maps en France, Suisse et Belgique

Il est très fréquent que nous répondions aux questions techniques et nous intervenions régulièrement en assistance ou en réalisation pour un projet ou une implémentation spécifique.

Pour les entreprises, c’est un gage de temps et de qualité avec des possibilités de transferts de compétences, connaissances et bonnes pratiques afin de devenir à termes autonome sur la plateforme et les choix techniques étroitement liés.

 

Licence et droits d'utilisation Bing Maps en France, Suisse et Belgique

Conclusions

A travers cet article, l’objectif était de présenter et expliquer de manière plus précise et plus claire les différents types de licences de la plateforme Bing Maps for Enterprise.

Comme on peut le remarquer il existe plusieurs type de licence qui correspondent respectivement à des cas d’utilisation ou des types d’organisations associés.

Je ne saurai que vous recommander d’échanger avec les équipes dédiées pour obtenir une information officielle mais j’espère que les précisions sur le licensing de la plateforme Bing Maps for Enterprise apporteront un peu plus de compréhension dans un modèle qui se révèle en réalité commun à de nombreuses plateformes.

N’hésitez pas à me contacter si vous avez une remarque ou une question à propos de cet article.

Les éléments de base définis dans le précédent article, il est parfois utile de pouvoir utiliser ces derniers afin de composer des éléments plus complexes avec des géométries fusionnées ou présentant des zones d’exclusion.

Sql Server 2008 et Denali (Sql Azure) - type géographique (geography) - MultiPoint, MultiLine, MultiPolygon, Collection - déclaration d'objet et règle de définition

Liens vers les articles liés

Cet article s’inscrit dans la série dédiée aux types géographiques et géométriques :

 

Présentation

Ces types complexes sont en réalité des composés d’éléments simples, autrement dit ils ne sont que des collections d’objets de même type ou non.

Parmi ces objets, on retrouve les éléments suivants :

  • MultiPoint : collection de plusieurs points
  • MultiLineString : collection de plusieurs lignes
  • MultiPolygon : collection de plusieurs polygones
  • Collection : collection de plusieurs géométries composées ou non

Multi geometrie (MultiPoint, MultiLine, MultiPolygon, Collection) au sein de SQL Server

Comme indiqué, les types d”éléments simples associés peuvent varier et composer ce qu’on appelle alors des collections de géométries. Ces collections peuvent tout à fait contenir d’autres collections et donc être imbriquées.

Pour rappel, l’architecture globale peut être représentée comme suit :

Architecture des types géographiques (geography) et géométriques (geometry) en WKT

 

Contraintes techniques

La composition de ces éléments ne présentent pas de difficultés supplémentaires en comparaison de l’utilisation d’objets simples et basiques.

La tâche se complexifie quelque peu lorsque l’on doit composer des collections de géométries elles-mêmes composées et contenant des objets avancés par exemple : un polygone avec trous ou multi-polygones.

Il faut toujours garder à l’esprit les limitations des éléments de manière individuelle pour composer l’objet global.

 

Implémentation technique dans SQL Server

Au niveau de SQL Server, la déclaration de ces éléments est relativement aisée puisqu’il s’agit de composer le WKT adéquat et d’utiliser les méthodes natives permettant d’initialiser une instance de l’objet déclaré.

La déclaration des différents éléments s’opère comme suit :

  • Construction d’une collection de points – MultiPoint 

La construction WKT d’un MultiPoint se présente comme suit :

MULTIPOINT((COORDINATES1),(COORDINATES2)) Ou 
MULTIPOINT((LONGITUDE LATITUDE),(LONGITUDE LATITUDE))

Voici un exemple de WKT pour le MultiPoint :

MULTIPOINT((3 45),(3.5 45))

Au niveau de la déclaration SQL Server :

DECLARE @multipoint AS GEOGRAPHY
SET @multipoint = GEOGRAPHY::STGeomFromText(
'MULTIPOINT((3 45),(3.5 45),(3.5 46),(4 47),(3 47),(3 45))', 4326) SELECT @multipoint

Pour les rendres visibles, nous ajoutons un buffer autour des points :

SELECT @multipoint.STBuffer(10000)

Ce qui donne en exécution :

MultiPoint SQL Server Denali 2011 et SQL Server 2008 R2 SP2

 

  • Construction d’une collection de lignes – MultiLineString

La construction WKT d’un MultiLineString se présente comme suit :

MULTILINESTRING((LINE1),(LINE2))

Ou

MULTILINESTRING((LONGITUDE1 LATITUDE1,
LONGITUDE2 LATITUDE2,
LONGITUDE3 LATITUDE3),
(LONGITUDEA LATITUDEA,
LONGITUDEB LATITUDEB)
)

Voici un exemple de WKT pour le MultiLine :

MULTILINESTRING((3 45,3.5 45),(3.5 46,4 47),(3 47,3 45))

Au niveau de la déclaration SQL Server :

DECLARE @multipolyline AS GEOGRAPHY
SET @multipolyline = GEOGRAPHY::STGeomFromText(
'MULTILINESTRING((3 45,3.5 45),(3.5 46,4 47),(3 47,3 45))', 4326) SELECT @multipolyline

Ce qui donne en exécution :

MultiLineStrings SQL Server Denali 2011 et SQL Server 2008 R2 SP2

  • Construction d’une collection de polygones – MultiPolygon

La construction WKT d’un MultiPolygon se présente comme suit :

MULTIPOLYGON((POLYGON1),(POLYGON2))

Soit :

MULTIPOLYGON(((COORDINATESPOLYGON1)),((COORDINATESPOLYGON2)))

imageA noter les doubles parenthèses qui définissent les polygones.

Voici un exemple de WKT pour le MultiPolygon :

MULTIPOLYGON(((3 45,4 45,4 46,3 45)),((5 46,6 47,5 47,5 46)))

Au niveau de la déclaration SQL Server :

DECLARE @multipolygon AS GEOGRAPHY
SET @multipolygon = GEOGRAPHY::STGeomFromText('MULTIPOLYGON(((3 45,4 45,4 46,3 45)),((5 46,6 47,5 47,5 46)))',4326)
SELECT @multipolygon

Ce qui donne en exécution :

MultiPolygon SQL Server Denali 2011 et SQL Server 2008 R2 SP2

 

image Attention : Dans le cas d’une collection de polygones, la composition de chacun d’entre eux nécessite de respecter les règles de définitions déjà abordées à travers cet article.
Il s’agit notamment de conserver une orientation correcte dans la définition afin de définir le polygone souhaitée et non l’inverse vis à vis du globe terrestre.

  • Construction d’une collection imbriquée

La construction WKT d’une collection de géométries se présente comme suit :

GEOMETRYCOLLECTION(ELEMENT1, ELEMENT2)

Voici un exemple de WKT pour la collection de géométries :

GEOMETRYCOLLECTION(
MULTIPOINT((3 44),(3.5 44),(3.25 44.5)),
MULTILINESTRING((3 45,3.5 45),(3.5 46,4 47),(3 47,3 45)),
POINT(2.75 44),
POLYGON((4 46,3.75 46,4 45,4 46))
)

Au niveau de la déclaration SQL Server :

DECLARE @multigeometry AS GEOGRAPHY
SET @multigeometry = GEOGRAPHY::STGeomFromText('GEOMETRYCOLLECTION(
MULTIPOINT((3 44),(3.5 44),(3.25 44.5)),
MULTILINESTRING((3 45,3.5 45),(3.5 46,4 47),(3 47,3 45)),
POINT(2.75 44),
POLYGON((4 46,3.75 46,4 45,4 46))
)'
,4326) SELECT @multigeometry

Ce qui donne en exécution :

GeometryCollection SQL Server Denali 2011 et SQL Server 2008 R2 SP2

La déclaration de ce type d’élément peut être réalisée de manière unitaire comme ici, ou à l’aide de méthodes dédiées pour générées des géométries, nous verrons dans un prochain article comment exploiter ces méthodes pour générer ces éléments et exploiter SQL Server 2008 pour ce qu’il fait de mieux avec ce type géographique.

 

Conclusions

L’ensemble des objets disponibles dans SQL Server 2008 a été couvert et ils seront très utiles pour stocker, manipuler, organiser ou filtrer vos données.

La prochaine version de SQL Server ‘Denali’ apportera plusieurs nouveaux types de bases et composés pour ces données géographiques et repoussera également les limites en termes de définition, nous aborderons ces nouveautés dans un article dédié.

Cette étape de déclaration et définition d’objet au sein de SQL Server 2008 présentée, nous pourrons, dans les prochains articles nous intéresser à l’utilisation des méthodes et à l’exploitation de ce type géographique disponible à travers les versions de SQL Server 2008 et supérieures ainsi qu’au sein de l’offre SQL Azure.

A travers ce précédent article dédié à la réalisation d’application de cartographie à travers une application WinForm et/ou WPF (Windows Presentation Foundation), nous avions déjà abordé certaines techniques d’implémentation en pondérant chacune de ces solutions en fonction du contexte.

Bing Maps integration en WPF et WinForm pour remplacer le contrôle Concierge sur la table Surface

Cet article a pour but d’aider les entreprises souhaitant effectuer la migration de leurs applications existantes sur la table Surface (basée sur l’application Concierge, le composant InfoStrat.VE ou autres…) ou tout simplement intégrer de la cartographie au sein d’application WPF ou WinForm.

Cet article est disponible ici en PDF et sera prochainement traduit en anglais : http://www.boonaert.net/documents/BingMaps/Bing%20Maps%20for%20Enterprise%20-%20Integration%20WPF.pdf

WPF et WinForm avec une carte bing maps (ou meme Google Maps, Yahoo Maps, Ovi Maps, Open Street Map)

Wygwam - Expertise technologique MicrosoftAu sein de Wygwam, nous avons régulièrement des demandes pour réaliser ce type d’application ou de contrôle d’intégration permettant d’apporter des possibilités cartographiques (affichage de carte, utilisation des contenus) aux applicatifs utilisant la technologie WPF.

C’est donc avec mon collègue Ludovic Czarnecki que j’ai pu tester les différentes solutions techniques présentées ci-dessous dans un contexte d’exécution de la table Microsoft Surface V1.

Bing Maps au sein d'une application Microsoft Surface / WPF

N’hésitez donc pas à nous contacter si vous avez ces besoins d’intégration ou si vous souhaitez davantage d’informations concernant une technique en particulier.

 

Rappel des derniers événements

Afin de comprendre la raison de cette mise à jour concernant les solutions d’intégration disponibles, il faut parcourir à nouveau l’actualité des derniers mois des technologies concernées.

  • Fin de vie du plugin 3D de la plateforme Bing Maps

Microsoft a annoncé en novembre 2010 la fin de vie programmée en novembre 2011 du plugin 3d disponible depuis plusieurs années et surtout utilisable à travers l’API en version 6.3.

Plugin 3D Bing Maps Virtual Earth 3D

Ce plugin 3d est pourtant utilisé dans de nombreux cas pour intégrer cette plateforme au sein d’application WPF et plus particulièrement sur la table Surface V1.

En effet, l’application Concierge mais également le contrôle Infostrat.VE disponible sur CodePlex utilisent ce plugin pour effectuer l’affichage.
Dès lors, même si ce plugin est installé (ou les assemblies nécessaires conservées), rien ne garantit son fonctionnement après la date indiquée notamment pour la récupération du modèle de terrain (DEM : Digital Elevation Model) ou pour les géométries 3d des bâtiments ou lieux connus.

Plugin 3D Bing Maps Virtual Earth 3D

Bref, le taux de pénétration réduit de ce plugin sur le poste grand public et l’évolution technologique ont motivé Microsoft a stoppé l’investissement sur ce dernier et à se concentrer sur d’autres possibilités de présentation et d’exploitation de ces informations et contenus 3D.

UPDATE : Microsoft vient de mettre à disposition les sources du plugin 3d et donne davantage d’information pour la fin de vie et le comportement à prévoir.
Plus d’infos via :
http://blogs.msdn.com/b/virtualearth3d/archive/2011/08/14/how-to-make-virtual-earth-3d-live-forever.aspx

Comme le suggère Alastair Aitchison – on pourrait dire "Fin de vie du plugin 3D?" "Non - vive le plugin 3D!"

 

  • Nouvelle version de la table Surface : Surface 2.0

L’arrivée prochaine de la table Surface 2.0 avec une technologie différente (voir plus bas) pour analyser les contacts utilisateurs amène son lot de changement pour les développements réalisés jusqu’à présent.

Microsoft Surface 2.0 expertise et developpement - demoMicrosoft Surface 2.0 expertise et developpement - demo

La technologie logicielle implémentée modifie également les développements sur la table Surface, l’ensemble du SDK et du Framework dédié à ce produit en v2 a été modifié, on n’utilise par exemple plus d’événement de type Contact (spécifique à la table Surface v1) mais au contraire des événements de types Touch standard à l’ensemble des applications WPF dédiées au tactile.

 

Résumé des possibilités d’intégration

D’une manière générale, ces possibilités d’intégration concernent les applications WPF et WinForm. Les cas spécifiques associés à la table Microsoft Surface sont abordés plus bas.

Voici, avant de nous intéresser aux détails, les différentes techniques d’implémentation listées :

  • Utilisation du WebBrowser et de l’API Bing Maps AJAX v7
  • Utilisation du WebBrowser et du contrôle Silverlight de Bing Maps
  • Utilisation d’un navigateur alternatif et de l’API Bing Maps AJAX V7
  • Utilisation d’un navigateur alternatif et du contrôle Silverlight
  • Utilisation d’une application Silverlight directement en WPF
  • Utilisation du plugin 3d à travers le contrôle InfoStrat.VE – CodePlex
  • Utilisation du contrôle GreatMaps for WPF – CodePlex
  • Utilisation d’un contrôle commercial dédié
    • Contrôle Telerik – RadMap
  • Développement personnalisé natif WPF

 

Présentation détaillée des solutions techniques

Après avoir résumé les solutions, nous allons nous intéresser aux détails d’implémentation mais également aux avantages et inconvénients de chacun d’elles.

  • Utilisation du WebBrowser et de l’API Bing Maps AJAX v7

Description technique :

Cette solution consiste à intégrer une instance du contrôle WebBrowser qui charge une page HTML distante ou un contenu HTML disponible en ressource intégrée à l’application.

API Bing Maps AJAX V7 control WebBrowser control in WPF application

Il suffit alors ensuite d’utiliser les méthodes InvokeScript() sur le contrôle WebBrowser (ou InvokeScript() sur la propriété Document du WebBrowser en WinForm) pour déclencher du code JavaScript depuis l’application .Net.

Du côté client, en JavaScript, il suffit d’utiliser l’élément window.external pour obtenir une référence vers l’objet passé dans la propriété ObjectForScripting du contrôle WebBrowser permettant ainsi de pouvoir appeler les méthodes de l’application .Net depuis le code client.

Analyse :

Avantages Inconvénients
Méthode supportée Intégration graphique limitée
Evolution aisée des développements et migration simple Complexité de développement
Intégration simple du modèle de licence de la plateforme Difficultés possibles lors d’un déploiement multi-systèmes

Mon avis :

Cette solution permets d’intégrer une application cartographie utilisant le contrôle interactif Bing Maps via l’API AJAX v7 en utilisant des techniques connues pour le développement autour de l’API.

Le principal effort consiste à effectuer l’ensemble du code d’interopérabilité entre le WebBrowser/JavaScript et le code .Net.

 

  • Utilisation du WebBrowser et du contrôle Silverlight de Bing Maps

Description technique :

En utilisant la même technique que la précédente, on charge cette fois une page contenant le contrôle Silverlight de la plateforme Bing Maps.

Voici un vue d’ensemble de ce qui est opéré :

Utilisation avancée du contrôle WebBrowser pour interop avec Silverlight et Bing Maps

Il suffit donc de réaliser une application .Net exposée en COM et établi comme propriété ObjectForScripting sur le composant WebBrowser.

Le code JavaScript assure la communication entre l’application WPF et le contrôle Silverlight.

Le contrôle Silverlight expose ses méthodes comme étant des ScriptableMember (en ajoutant l’attribut) et référence l’application comme ScriptableObject via la méthode RegisterScriptableObject() du contrôle WebBrowser en permettant ainsi d’accéder à ces différents attributs et méthodes.

Analyse :

Avantages Inconvénients
Méthode supportée Intégration graphique limitée
Performances du contrôle Silverlight Complexité important du développement
Possibilité d’intégrer la logique applicative dans l’application Silverlight Dépendance au plugin Silverlight

Mon avis :

Cette solution relativement proche de la précédente approche possède toujours les mêmes limites en termes d’intégration graphique mais permet d’exploiter les performances du contrôle Silverlight de Bing Maps for Enterprise.

La contrainte supplémentaire du plugin Silverlight augmente la complexité du développement des couches d’interopérabilités (voir Article en 4 parties : Bing Maps for Enterprise – Integration WPF : interopérabilité avec Silverlight) et nécessite une connaissance pointue des possibilités d’interopérabilité de chaque brique applicative.

 

  • Utilisation d’un navigateur alternatif et de l’API Bing Maps AJAX V7

Description technique :

A travers cette réalisation, on souhaite utiliser le contrôle basé sur Chromium afin de charger la page sous le même mode que le WebBrowser standard.

Avec ce contrôle, on observe la possibilité d’intégrer graphiquement le navigateur dans l’application WPF et d’opérer des manipulations impossibles à réaliser avec le contrôle WebBrowser standard : rotation, modification des dimensions, transformations avancées…

Chromium AJAX V7 API Control Bing Maps integration en WPF

Pour simplifier l’utilisation de Chromium au sein d’une application WPF, il est possible d’utiliser le projet WPFChromium disponible via ces liens :

Analyse :

Avantages Inconvénients
Intégration graphique facilitée Méthode non-supportée
Utilisation du contrôle AJAX Complexité de développement et limitations d’interopérabilité possibles
Intégration simple du modèle de licence de la plateforme Quid de l’évolution

Mon avis :

Cette solution permets de s’affranchir de la limite d’intégration graphique, en effet avec le contrôle navigateur alternatif, il devient possible de le manipuler (taille, orientation…) et surtout d’afficher des éléments par-dessus chose impossible en utilisant le contrôle WebBrowser de base.

Cependant, cette méthode présente la limite précise qu’il s’agit d’une utilisation de composant non supporté et d’une utilisation de l’API AJAX de la plateforme Bing Maps for Enterprise dans un contexte non supporté.

 

  • Utilisation d’un navigateur alternatif et du contrôle Silverlight

Description technique :

En utilisant le contrôle navigateur basé sur Chromium à travers le wrapper dédié, on charge une application simple intégrant le contrôle Silverlight de la plateforme Bing Maps for Enterprise.

Chromium Silverlight Bing Maps integration en WPF

Le projet WPFChromium présenté avec la solution précédente permet de réaliser cette intégration mais peut amener des difficultés de chargement du contenu Silverlight.

Analyse :

Avantages Inconvénients
Intégration graphique facilitée Méthode non-supportée
Performances Problème possible de compatibilité Silverlight
Possibilité d’intégrer la logique applicative dans l’application Silverlight Evolution, difficulté de développement et limitations d’interopérabilité possibles

Mon avis :

Cette solution présente de nombreux points de doutes avec notamment un gros souci de compatibilité/support du contrôle navigateur tout comme le support Silverlight dans ce contexte.

La complexité de développement et les limitations possibles d’interopérabilité avec ce navigateur alternatif devront faire l’objet d’une reflexion approfondie.

 

  • Utilisation d’une application Silverlight directement en WPF

Description technique :

En réalisant une application Silverlight intégrant le contrôle Silverlight de Bing Maps for Enterprise, on utilise directement ce composant au sein de l’application WPF.

Pour cela plusieurs techniques possibles dont voici quelques liens utiles :

Silverlight rendu dans WPF (integration silverlight wpf)

Un projet CodePlex facilite cette intégration, il s’agit de SilverlightViewport développé par Jeremiah Morrill (qui soit dit au passage est un vrai guru en WPF et autres technologies de présentation).
Ce projet est disponible via ce lien : http://silverlightviewport.codeplex.com/

Analyse :

Avantages Inconvénients
Intégration WPF Méthode non supportée
Performance du contrôle Silverlight Complexité de développement
Possibilité d’intégrer la logique applicative dans l’application Silverlight Dépendance au plugin Silverlight

Mon avis :

Cette technique d’implémentation est assez délicate à mettre en place et nécessite une connaissance pointue des technologies WPF et Silverlight.

Elle présente toutefois un avantage notable, elle permet en effet de s’intégrer de manière parfaite en WPF et n’impose pas de dépendance à un quelconque contrôle navigateur.

 

  • Utilisation du plugin 3d à travers le contrôle InfoStrat.VE – CodePlex

Description technique :

Cette solution technique repose sur l’utilisation du plugin 3d disponible avec la version 6.3 et qui est utilisé au sein d’une surface Direct3D directement au sein de WPF.

codeplex_header

Le projet InfoStrat.VE disponible sur CodePlex et développé par InfoStrat, fournit la couche de manipulation entre WPF et le plugin 3D ce qui simplifie grandement la gestion des événements et la manipulation du composant natif.

Analyse :

Avantages Inconvénients
Utilisation du plugin 3D Fin de vie du plugin 3D
Performances Méthode non supportée
Intégration WPF et simplicité du développement Nombre d’instance simultanée limitée du contrôle

Mon avis :

Cette solution fonctionne à merveille et permets de proposer des performances élevées et une expérience 3d qui se combine à merveille sur les applications Surface.

Cependant, la fin de vie programmée du plugin 3D de la plateforme Bing Maps for Enterprise impose à chacun de considérer cette solution comme obsolète et même à remplacer dans un futur proche compte tenu de l’évolution prochaine de la plateforme, relativement incertaine vis à vis de ce plugin 3D.

 

  • Utilisation du contrôle GreatMaps for WPF – CodePlex

Description technique :

La solution technique employée utilise un contrôle natif WPF (ou WinForm et même Windows Mobile) qui repose sur un fonctionnement standard de génération de tuile.image

Le contrôle est disponible au sein du projet GreatMap hébergé sur CodePlex rend possible l’affichage de cartes chargées sous formes de tuiles.

Great Maps for WPF Windows Form and Bing Maps for Enterprise

Voici le lien vers ce projet : http://greatmaps.codeplex.com/

Analyse :

Avantages Inconvénients
Intégration WPF Support limité
Simplicité du développement et possibilité de changement de fournisseur de contenu Evolution délicate du contrôle vis à vis des services de la plateforme
Performances  

Mon avis :

Cette solution mérite le détour puisque dans la version actuelle, on dispose d’un contrôle dédié à WinForm et un autre à WPF.

Le contrôle permet d’utiliser de multiples fournisseurs de carte (Bing Maps for Enterprise, OSM, Google Maps…) et simplifie grandement le développement et l’intégration d’une carte performante dans vos applications WPF.

 

  • Utilisation d’un contrôle commercial dédié – Telerik RadMap

Description technique :

En utilisant le contrôle RadMap de la librairie proposée par Telerik, on obtient un composant cartographique multifournisseur, permettant d’afficher des cartes nativement en WPF.

Telerik logoRadMap control from Telerik RadControl library

Le contrôle tente de reproduire le comportement et le rendu disponible dans celui proposé en Silverlight reposant sur la technologie DeepZoom.

Analyse :

Avantages Inconvénients
Méthode supportée par Telerik Performances et expérience relativement limitées
Simplicité de développement et possibilité de changement de fournisseur de contenu Composant commercial et licence associée
Intégration WPF Evolution du composant

Mon avis :

Cette solution commerciale présente un contrôle simple à utiliser mais qui n’apporte pas une expérience utilisateur suffisante pour approcher celle du contrôle AJAX ou Silverlight.

L’aspect commercial de la solution n’est également pas là pour simplifier la mise en place au sein d’un projet client.

 

  • Développement personnalisé natif WPF

Description technique :

La solution la plus radicale consiste à recréer soi-même un contrôle en WPF natif utilisant des éléments standards pour charger une carte à travers un canvas dédié.

Développement WPF WinForm pour Bing Maps dans la table Surface ou dans des applications lourdes

Analyse :

Avantages Inconvénients
Maitrise complète du développement Complexité de développement
Intégration WPF et performances Coût lié
Evolution du contrôle vis à vis de la plateforme Problématique d’évolution, de performances, de test et charges

Mon avis :

Certainement l’option la plus permissive peu importe l’exploitation du contrôle qui est faite, cette solution a cependant des inconvénients notables puisqu’elle nécessite un développement personnalisé qui peut très vite devenir couteux en temps et très délicat à appréhender.

 

Cas particuliers de la table Microsoft Surface

Microsoft Surface - developpement et expertise - WPF Bing Maps

La table Surface de Microsoft se présente à présent en 2 versions distinctes que je choisis ici de présenter brièvement. Nous allons ensuite nous intéresser au cas spécifique des applications s’exécutant sur ce type de périphérique.

imageLe détail complet et des articles explicatifs précis sont disponibles sur la MSDN : http://msdn.microsoft.com/en-us/library/ee804845(v=Surface.10).aspx

  • La table Surface en version 1 (Microsoft Surface Table V1)

La première version a été rendue disponible à partir de 2009 et reposait sur une technologie de reconnaissance de forme utilisant des caméras intégrées à la table qui se présente comme cela :

Table Surface V1 - Développement et expertise

 

  • La table Surface en version 2 (Microsoft Surface Table V2)

La seconde version a été annoncée et devrait être commercialisée dans le second semestre 2011.

Table Surface V2 - Développement et expertise

Pour réaliser la reconnaissance de forme et la détection des interactions utilisateurs, Samsung et Microsoft ont mis au point une technologie baptisée PixelSense qui s’appuie sur un réseau de LED Infrarouge et une couche de détection optique capturant le résultat réfléchie de l’infrarouge.

PixelSense - Fonctionnement de la table Surface 2.0 de Microsoft

Pour plus d’informations sur la technologie PixelSense utilisée au sein de cette Surface 2.0, n’hésitez pas à vous rendre sur le site dédié : http://www.microsoft.com/surface/en/us/pixelsense.aspx

 

  • Principales différences

Forme, matériel et technologie :

La table Surface V1 pèse 70 Kg et utilise une technologie de reconnaissance de forme basé sur un réseau de caméra.

La table Surface V2 quant à elle présente un poids moindre (40 Kg) et donne la possibilité d’être orienté et même être disposée sur un mur. Une épaisseur de seulement une dizaine de centimètre grâce à l’utilisation de la technologie PixelSense.

Evidemment, la configuration matérielle (le PC qui exécute les applications) a aussi connu une cure de jouvence. Le système d’exploitation est logiquement changé pour passer de Windows Vista (v1) à Windows 7 (v2).

En résumé :

  Surface V1.0 Surface V2.0
Ecran 30” XGA projecteur avec surface polie 40” LCD avec une vitre de type Gorilla Glass
Résolution 1024 * 768 1920 * 1080 (HD 1080p)
Technologie multitouch Réseau de projecteur et de 5 caméras
52 contacts simultanés
PixelSense
50 contacts simultanés
Dimensions 56 cm d’épaisseur
68.6 cm de large pour la surface
57.2 cm de large pour la base
108 cm de long
10 cm d’épaisseur
102 cm de diagonale
Poids 70 Kg 40 Kg
Disposition Horizontale Horizontale ou Verticale (inclinable)
Processeur Intel Core 2 Duo (2.13 Ghz) AMD Athlon II X2 Dual-Core Processor 2.9GHz
Carte graphique ATI X1650 AMD Radeon HD 6700M
RAM 2 Go DDR2 4 Go DDR3
Disque dur 250 Go SATA 7200 t/min 320 Go SATA 7200 t/min
Support HDMI Non Oui
Système Windows Vista Pro 32-bit Windows 7 Pro 64-bit
Coût 12 500 $ / 9000 € env. 7 600 $ / 5 400 € env.

Sources :

 

Aspect logiciel :

Fondamentalement la technologie utilisée reste identique puisqu’il s’agit dans les 2 versions d’un Framework basé sur WPF. Il est également possible de réaliser des applications en XNA sur ce type de périphérique.

Le gros point de différence réside dans la manière de gérer les contacts qui dans la première version étaient des ContactEvent (avec des propriétés dédiées).

Le nouveau SDK ainsi que les outils de développement ou de simulation de la table Surface ont eux aussi été mis à jour avec notamment un simulateur amélioré de la table :

Microsoft Surface Simulator

Enfin, évidemment, le Framework Surface a été étendu avec de nouveaux contrôles et nouvelles possibilités disponibles à travers ce lien :

http://www.microsoft.com/download/en/details.aspx?id=26716

 Microsoft Surface 2.0 SDK Library Control and Container

Concernant la migration d’une application Surface v1 vers Surface v2, pour les cas simples, il est possible d’utiliser le PowerToy fourni par Microsoft et présenté à travers le lien suivant : http://msdn.microsoft.com/en-us/library/gg697146.aspx.

 

  • Considérations pour vos applications pour la table Surface V1.0

La table Surface v1.0 repose sur une couche de capture des événements qui s’opère au-dessus de l’application WPF. Il faut alors pouvoir capturer ses contacts au-dessus des composants utilisés et bindés ces derniers sur une manipulation WPF adaptée.

Surface V1 - Bing Maps application

Les solutions reposant sur l’utilisation du contrôle WebBrowser ne peuvent pas fonctionner en manipulation directe de la carte : on ne peut donc pas capturer les contacts au-dessus d’un contrôle WebBrowser classique.
En effet, ce contrôle existe depuis les anciennes versions du Framework et repose sur un contrôle Win32 et le rendu s’opère au dessus de tout contrôle WPF et également au-dessus de la couche de capture des contacts. Dès lors il est donc impossible d’obtenir un événement de contact au-dessus de la page hébergé par le contrôle WebBrowser.

  • Evolution des développements

Les applications développées pour la table Surface seront les mêmes que ceux des tablettes Windows 7 ou des PC avec écran tactiles. Elles seront naturellement compatibles sur PC avec une simple souris.

Ce qui intéressant dans ce cas c’est la capacité simple permettant de migrer une application sur un type de support vers un autre et inversement. Il est également intéressant de voir que l’intégration de contrôles avancés se fera de manière plus aisée et surtout une méthode unique, les considérations concernant l’intégration de la cartographie en WPF se réduisent puisqu’il s’agit là des mêmes développements.

Attention toutefois, les applications s’exécutant sur une table Surface doivent, à mon sens, faire preuve d’une réflexion particulière sur l’utilisation qui va en être faite. Il faut concevoir l’application comme étant possiblement exploitable de n’importe quel côté de la table et surtout avec de l’information adaptée et lisible dans ce cas présent. L’utilisation simultanée par plusieurs utilisateurs est également un élément dont il faut tenir compte et qui est à réfléchir.

 

Conclusions

L’ensemble de ces solutions techniques d’intégration de plateforme cartographique au sein d’application WPF sont à considérer en fonction du contexte final d’exécution.

En effet, on ne peut pas aisément désigner LA solution parfaite pour tous les cas car là où pour certains le besoin en support et évolution du composant est primordial, l’intégration fine et le besoin de customisation seront négligés et inversement.

Par contre, la solution utilisant le plugin 3d (Concierge ou contrôle InfoStrat.VE) ne doivent plus être utilisées pour de nouveaux projets et devront très certainement subir une migration dans les mois à venir à la fin de vie du plugin (novembre 2011).

Il également à noter que dans ce type d’intégration, il est toutefois nécessaire de conserver en tête l’aspect légal et donc se rapprocher de Microsoft pour obtenir davantage d’information concernant les licences d’utilisation de la plateforme Bing Maps for Enterprise.

 

Autres pistes à explorer :

Si vous avez en tête d’autres solutions d’intégration de l’API Bing Maps ou plus généralement de cartographie au sein d’application WPF à laquelle je n’aurai pensé, n’hésitez pas à me contacter ou à laisser un commentaire.

Je n’ai pas présenté la solution d’intégration de Google Earth API puisque je voulais des solutions d’intégration de la plateforme Bing Maps for Enterprise principalement, mais il est évident que cela peut être une solution possible d’intégration.

La solution d’intégration ESRI n’a pas non plus été présentée puisque leurs contrôles ne sont pas librement accessibles en version d’évaluation.

 

Aussi, si vous aussi vous rencontrez ce genre de besoin, n’hésitez pas à me contacter pour échanger sur le sujet.

Nombreuses sont les sociétés ou organisation, qui, en France, utilisent ou possèdent des données provenant de l’Institut Géographique National – IGN.

Ces données se matérialisent sous forme de bases de données multiples intégrant les données parcellaires, les bases topographiques et bien d’autres contenu qui sont désormais rendu disponibles dans le cadre de la directive Européenne INSPIRE.Bing Maps IGN intégration des données BD-TOPO BD-Parcellaire BD carto de l'IGN sur une carte de type Bing Maps ou Google Maps

A travers cet article, nous allons donc nous intéresser à ce qu’est la directive INSPIRE, comment accéder aux informations fournies par l’IGN et pour finir à l’intégration des données de l’IGN au sein du contrôle AJAX en version 7 de la plateforme Bing Maps for Enterprise.

 

INSPIRE en quelques mots

La directive INSPIRE – Infrastructure for Spatial Information in Europe se résume à cette volonté :

La directive INSPIRE, élaborée par la Direction générale de l'environnement de la Commission européenne, vise à établir en Europe une infrastructure de données géographiques pour assurer l’interopérabilité entre bases de données et faciliter la diffusion, la disponibilité, l'utilisation et la réutilisation de l’information géographique en Europe.

C’est donc bel et bien un effort commun en Europe pour favoriser la mise à disposition sous une forme standard des contenus cartographiques.

INSPIRE directive en France et en Europe - logo

Les grands principes visent principalement à :

  • Rendre la collecte de données géographiques unique et réduire les coûts de collecte (acquisition, traitement, mise à disposition) de manière globale
     
  • Donner la possibilité de manière simple de combiner ces informations géographiques provenant de sources multiples à travers des applications ou autres services
     
  • Partager les données avec tous les autres organismes publics
     
  • Mettre à disposition la donnée de manière claire et accessible
     
  • Présenter quelles informations sont disponibles, les besoins auxquels ces informations peuvent répondre et communiquer efficacement sur les conditions d’utilisation

IGN - Institut géographique National - BD PARCELLAIRE, ORTHO, BATI intégré dans Bing Maps à travers ces article - logo L’IGN a été un acteur majeur dans la défense de la mise en place de cette directive et c’est un projet auquel nous pouvons espérer, beaucoup collaboreront au delà des choses imposées en se rendant également disponible pour facilité l’implémentation de leurs données et en communiquant sur des réseaux adaptés.

A ce propos et quelques peu en lien, il est également à noter la volonté de l’Etat Français, d’ouvrir les données et de créer un espèce de data.gouv.fr que l’on pourra bientôt espérer riche en contenu comme il est possible d’en trouver dès à présent sur Open Data Paris ou bien d’autres villes ou même régions comme expliqué via ce lien : http://www.europecreative.eu/2011/05/06/open-data-les-collectivites-territoriales-ouvrent-leurs-donnees-au-public/.

Ne manquez pas de suivre l’actualité du groupe constitué Etalab à travers ce blog officiel, dédié à la création de cette espace de partage de données publiques : http://etalab.over-blog.com/.

 

Accès aux données de l’IGN

Les licences :

L’IGN, concernée de près par cette directive ont mis à disposition leurs données à travers des services dédiés et restreint à des usages non-commerciaux.

Données cartographiques intégrées dans Bing Maps WMS et WMSC

Pour obtenir d’avantages d’informations concernant les licences et les conditions d’utilisations des données et services de l’IGN : https://api.ign.fr/geoportail/index.do

Après avoir créé son compte et rempli les différentes informations sur le site de l’IGN, on observe la possibilité de créer un contrat selon les modalités expliquées dans les licences associées.

Les données

Dans l’état actuel, le contrat de type INSPIRE donne accès à ces informations via le serveur WMS-C (Web Mapping Service Cached) :

  • Limites administratives (WMSC:ADMINISTRATIVEUNITS.BOUNDARIES)
  • Parcelles cadastrales (WMSC:CADASTRALPARCELS.PARCELS)
  • Réseau ferroviaire (WMSC:TRANSPORTNETWORKS.RAILWAYS)
  • Routes (WMSC:TRANSPORTNETWORKS.ROADS)
  • Aérodromes (WMSC:TRANSPORTNETWORKS.RUNWAYS)
  • Hydrographie (WMSC:HYDROGRAPHY.HYDROGRAPHY)
  • Altitude (WMSC:ELEVATION.SLOPES)
  • Trait de côte (WMSC:ELEVATION.LEVEL0)
  • Photographies aériennes (WMSC:ORTHOIMAGERY.ORTHOPHOTOS)
  • Ortho photographies du littoral (2000) (WMSC:ORTHOIMAGERY.ORTHOPHOTOS.COAST2000)
  • Bâtiments (WMSC:BUILDINGS.BUILDINGS)
  • Services publics (WMSC:UTILITYANDGOVERNMENTALSERVICES.ALL)

Et les services WMS, standard OGC, correspondants par zones de couverture :

  • FXX : France Métropolitaine
  • GLP : Guadeloupe
  • GUF : Guyane Française
  • MTQ : Martinique
  • REU : La Réunion
  • MYT : Mayotte

Détails complet dans ce fichier Excel : http://www.boonaert.net/documents/BingMaps/IGN%20-%20Inspire.xlsx

 

Présentation de la méthode d’accès et obtention d’un jeton client

Les services de l’IGN sont soumis à l’obtention d’un jeton basé sur une clé unique et généré pour une période paramétrable, de base configurée pour ne durer que 10 minutes.

Voici un vue globale du fonctionnement de ce système de jeton :

Architecture des services d'authentification WMS de l'IGN Geoportail ou INSPIRE - système de jeton du géoportail avec utilisation de jQuery

Dès lors, ces services peuvent être appelés depuis du code client et nous pouvons tout à fait composer ces requêtes en JavaScript.

Voici un exemple de code utilisant jQuery, permettant de récupérer ce jeton qui servira à identifier chaque nouvelle requête effectuée, cette méthode n’est appelée qu’une fois au chargement de la carte :

// IGN Specific
function getTokenIgn(key, callback) {

    // manage default callback
    if (callback == null) callback = onGetTokenIgn;

    //getToken?key=CLEF&output=json

    var requestParams = new Object();
    requestParams.key = ignConstants.ignKey;
    requestParams.output = 'json'

    // Call the service
    $.ajax({
        type: 'GET',
        url: ignConstants.ignTokenSrvUrl + 'getToken',
        cache: false,
        data: requestParams,
        dataType: 'jsonp',
        success: callback,
        error: onGlobalError
    });
}

Dans le callback, il suffit ensuite de conserver le jeton renvoyé :

function onGetTokenIgn(result) {
    ignGlobals.token = result.gppkey;
}

Il suffit alors de conserver ce jeton et de le communiquer en paramètre des requêtes suivantes.

 

Accès aux données sous formes de tuiles

Les données sont exposées sous formes de différents services comme présentés précédemment : 

  • OGC Open Geospatial Consortium - LogoWMS : Web Mapping Service – standard OGC
  • WMS-C : Web Mapping Server Cached – non standard
  • WFS : Web Feature Service – standard OGC

Afin de réaliser l’intégration au sein du contrôle Bing Maps AJAX v7, nous choisissons d’utiliser les données sous formes de tuiles et comme pour la majorité des plateformes de Web Mapping grand public, les données doivent respecter le système de projection Mercator EPSG:4326 (ou mieux Web Mercator).

Mercator projection carrée compatible avec Bing Maps et Google Maps entre autres

Ce système de projection est uniquement disponible à travers le service WMS pour l’obtention de tuile utilisable au sein du contrôle AJAX de la plateforme Bing Maps. Ces tuiles sont des fichiers d’images

Voici un exemple d’url permettant d’accéder à du contenu :

http://wxs.ign.fr/inspire/wms?&TRANSPARENT=true&LAYERS=FXX.BUILDINGS.BUILDINGS
&EXCEPTIONS=text/xml&FORMAT=image/png&SERVICE=WMS
&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG:4326
&BBOX=2.3455810546875,48.850258199721495,
2.35107421875,48.853872731656544
&WIDTH=256&HEIGHT=256&TILED=true
&gppkey=JETON

 

L’image associée :

IGN sample buildings tile - tuile WMS d'affichage des données du bati de l'IGN pour integration sur WEB API 

L’ensemble des paramètres d’appels est décrit dans le document PDF fourni en documentation sur le site de l’IGN disponible à travers ce lien.

Il est alors aisé de changer le type de données à afficher en tant que tuile en modifiant le paramètre LAYERS de la requête.

L’adresse de la même tuile présentant cette fois-ci les informations de réseaux routiers :

http://wxs.ign.fr/inspire/wms?&TRANSPARENT=true&LAYERS=FXX.TRANSPORTNETWORKS.ROADS
&EXCEPTIONS=text/xml&FORMAT=image/png&SERVICE=WMS
&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG:4326
&BBOX=2.3455810546875,48.850258199721495
,2.35107421875,48.853872731656544
&WIDTH=256&HEIGHT=256&TILED=true&gppkey=JETON

Et ici les images associées avec le type de données ROADS (LAYERS : FXX.TRANSPORTNETWORKS.ROADS) :

IGN sample buildings tile - tuile WMS d'affichage des données routieres pour affichage sur Web API  

Utilisation et intégration au sein de la plateforme Bing Maps for Enterprise

Les données de l’IGN peuvent alors être techniquement intégrées sur les plateformes Grand public de Web Mapping que sont Google Maps API ou Bing Maps for Enterprise.

bingmaps_header

Dans le cas de Bing, l’intégration peut être réalisée assez simplement puisqu’il s’agit de couche WMS exposées sous formes de carte générées dans la taille souhaitée et donc pour l’implémentation Bing, cela se résume à intégrer une couche de tuile supplémentaire, générée pour l’occasion par le service WMS de l’IGN.

Dans le cas présent, je choisis de créer une méthode simple pour éviter d’avoir à modifier mon code à chaque changement de calque de données à afficher, la méthode est la suivante :

function addLayer(layerName) {
    if (ignGlobals.token != null) {
        ignGlobals.ignLayerName = layerName;

        // Create the tile source
        var dataTileSource = new Microsoft.Maps.TileSource({ uriConstructor: getIgnTilePath });

        // Construct the layer using the tile source
        var dataTileLayer = new Microsoft.Maps.TileLayer({ mercator: dataTileSource, opacity: 1, zIndex: 10 });
        bmGlobals.map.entities.push(dataTileLayer);
    }
}

On remarque principalement l’utilisation d’un constructeur d’URL personnalisé qui pointe sur une méthode qui construit dynamiquement l’url à partir de la tuile courante, voici le code de cette méthode de construction dynamique d’url :

function getIgnTilePath(tile) {
    var tileUrl = null;
    if (ignGlobals.token != null) {

        var locBottomLeft = tileToTopLeftCornerLocation(tile.x, tile.y + 1, tile.levelOfDetail);
        var locTopRight = tileToTopLeftCornerLocation(tile.x + 1, tile.y, tile.levelOfDetail);

        // Compose the url
        tileUrl = ignConstants.ignWmsSrvUrl;
        tileUrl += 'wms';
        tileUrl += '?&TRANSPARENT=true';
        tileUrl += '&LAYERS=' + ignGlobals.ignLayerName;
        tileUrl += '&EXCEPTIONS=text/xml';
        tileUrl += '&FORMAT=image/png';
        tileUrl += '&SERVICE=WMS';
        tileUrl += '&VERSION=1.1.1';
        tileUrl += '&REQUEST=GetMap';
        tileUrl += '&STYLES=';
        tileUrl += '&SRS=EPSG:4326';
        tileUrl += '&BBOX=' + [locBottomLeft.longitude,
                               locBottomLeft.latitude,
                               locTopRight.longitude, 
                               locTopRight.latitude].join(',');
        tileUrl += '&WIDTH=256';
        tileUrl += '&HEIGHT=256';
        tileUrl += '&TILED=true';
        tileUrl += '&gppkey=' + ignGlobals.token;
    }

    return tileUrl;
}

On utilise une méthode pour convertir ces valeurs X et Y identifiant la tuile dans son système de quadtree (c’est en réalité une autre représentation des quadkeys) :

function tileToTopLeftCornerLocation(x, y, zoomLevel) {
    // Convert tileXY into pixel coordinates for top left corners 
    var pixelX = x * 256;
    var pixelY = y * 256;

    // Convert to latitude and longitude coordinates 
    var longitude = pixelX * 360 / (256 * Math.pow(2, zoomLevel)) - 180;
    var latitude = Math.asin((Math.exp((0.5 - pixelY / 256 / Math.pow(2, zoomLevel)) * 4 * Math.PI) - 1)
                / (Math.exp((0.5 - pixelY / 256 / Math.pow(2, zoomLevel)) * 4 * Math.PI) + 1)) * 180 / Math.PI;

    return new Microsoft.Maps.Location(latitude, longitude);
}

Voici le résultat en exécution :

Details du bati de l'IGN au sein d'une carte de type Bing Maps / Google Maps

 

Quelles perspectives ?

Nous pouvons que nous réjouir de l’ouverture des données de ces organisations qui possèdent réellement des quantités d’informations qui, combinées à celles des organismes voisins, peuvent réellement laisser place à des usages encore insoupçonnés jusqu’alors.

Cette obligation va également nous permettre de mieux se représenter ce qui est disponible de manière payante pour un usage commercial ce qui est un réel avantage surtout dans des scénarii d’intégration multi-plateforme.

Geo business intelligence market in Europe - Geo BI marche en France Le marché Européen représenté par l’utilisation et la mise à disposition de ces données mises à disposition au grand public est estimé à 27 milliards d’euros (voir : Article - La révolution “open data”) mais comme dans la plupart des cas, cela ne se fait pas sans quelque souci de mise en place ou de compréhension.

Le récent cas du service CheckMy!Metro qui s’est heurté à une équipe juridique de la RATP un peu trop rigide mais qui s’est depuis raisonné et qui laisse place au dialogue. Ce n’est pour moi, qu’un cas parmi bien d’autres mais il a eu le mérite d’attirer l’attention de la presse spécialisée et amènera le gouvernement Français à prendre position et défendre l’Open Data en France ce type de mouvement qui se lie de près à cette directive.

A ce titre, je tiens à souligner que ce type d’initiative de création d’application originale doit être soutenue et que ce n’est pas dans l’immobilisme de certaines grosses organisations que l’on va trouver solution à nos problèmes économiques actuels.

INSPIRE ouverture des données spatiales en France et en EuropeCette directive INSPIRE s’inscrit dans cet objectif et nous encourage à créer de la richesse et de la vie à partir de données bien trop souvent cantonnées à un usage classique avec en réalité un potentiel bien plus important lorsqu’elles sont croisées les unes aux autres.

 

Conclusions

Microsoft à travers Bing Maps for Enterprise, propose une plateforme sur laquelle il est possible de venir greffer des données comme celles proposées par ces organismes qui vont continuer d’ouvrir des bases toujours plus riches lorsqu’elles seront utilisées conjointement.

Cet article nous a donc montrer comment exploiter des sources de données provenant de l’IGN et plus généralement depuis un service WMS.

Il est important de se renseigner avant d’utiliser ces données dans vos différents projets, leurs utilisations est soumises à conditions mais l’implémentation technique est possible et vous avez ici la preuve et les bases pour réaliser une telle intégration.

Comme toujours, toute question sur l’implémentation technique est la bienvenue, n’hésitez pas à me contacter si vous souhaitez intégrer les données de l’IGN au sein de Bing Maps for Enterprise ou même sur d’autres plateformes.

Nous verrons dans les prochaines semaines l’utilisation d’autres données et comment maximiser l’intégration de tels services tiers pour toujours venir enrichir l’expérience utilisateur implémentant la plateforme Bing Maps for Enterprise.

Un rapide billet pour annoncer mon renouvellement en tant que MVP pour l’année 2011/2012 après une année riche en événements et en changements.

Bing Maps MVP Windows Live MVP - expert technique Bing Maps et cartographie

En ce vendredi 1er juillet, j’ai eu l’agréable surprise d’être renouvelé Microsoft Most Valuable Professional, il s’agit, pour les personnes qui ne connaissent pas ce titre, d’une nomination qui récompense un travail communautaire et qui m’identifie comme expert, sur la plateforme Bing Maps for Enterprise dans mon cas.

MVP Bing Maps for Enterprise - Spécialiste Bing Maps Microsoft

Mais afin de partager mon expérience de cette première année, je souhaite vraiment remercier mes proches, qui m’entourent et qui m’encouragent à investir énormément sur ces domaines techniques qui sont avant tout une réelle passion qui va bien au delà de l’implémentation technique.

J’en profite également pour remercier Wygwam, société à travers laquelle j’évolue depuis plus de 3 ans et demi et où j’ai aujourd’hui la chance de m’occuper de l’équipe dédié à la cartographie, accompagné dans mon expertise par des personnes compréhensives et passionnées. Wygwam Renouvelle MVP Bing Maps Nicolas boonaert

Résumé des principaux événements de l’année depuis juillet

Participation aux événements :

  • Participation à l’événement Navteq à Francfort

Dans le cadre de certains projets, j’ai eu à travailler pour Navteq et suite à cette collaboration, j’ai été invité à participer à l’événement Directions 2010 organisé à Francfort au courant du mois d’Octobre 2010. Logo Navteq pour l'événement Direction 2010

Un événement très intéressant pour suivre la tendance du marché autour de la donnée cartographique et rencontrer les vrais acteurs de ce milieu.

Navteq Directions 2010 à Francfort

Plus de détails à travers les billets dédiés disponibles ici.

 

  • Participation aux Bing Maps Days à ParisBing Maps Days à Issy les Moulineaux - Microsoft Center

A l’occasion d’événement décideurs et techniques organisés en novembre 2010, Microsoft a souhaité mettre en avant sa plateforme cartographique avec notamment l’annonce de la nouvelle version de son API en version 7.

Un événement très intéressant mêlant retours d’expérience, cas clients et découverte technique de la plateforme en compagnie de Johannes Kebeck.  Bing Maps Days Session décideur et technique

Plus de détails sur l’événement via ces liens :

- http://blogs.developpeur.org/nicoboo/archive/2010/11/24/bing-maps-days-resume-de-l-evenement-et-des-conf-rences.aspx

- http://blogs.developpeur.org/nicoboo/archive/2010/12/10/bing-maps-for-enterprise-evolution-de-la-plateforme-et-precisions.aspx

 

  • Participation aux Techdays 2011 à Paris

L’événement technique majeur de Microsoft, organisé en Février 2011, a regroupé, comme chaque année, plus de 15 000 personnes sur les 3 jours.

Techdays 2011 Ask the expert

L’occasion pour moi de rencontrer de nombreux utilisateurs professionnels ou curieux des technologies intéressés par l’utilisation de la cartographie au sein de leurs projets.

Pleniere Techdays 2011

Bien entendu, c’est aussi l’occasion de croiser plein de monde et de revoir de vieilles connaissances tout en profitant pour se tenir informer des dernières technologies.

Cela a également été le moment où, lors de la session de Johannes, nous avons annoncé, avec Microsoft, la mise en place du programme V-TSP (voir plus bas) entre Wygwam et Microsoft.

 

  • Participation au MVP Summit à Seattle

Chaque année, Microsoft prends soin de regrouper la communauté de professionnels qui ont reçu le titre de MVP dans les locaux de Seattle, chef lieu des équipes techniques principales de Microsoft.

MVP Summit 2011 John's Map   MVP Summit 2011  MVP Summit 2011 - Steve Balmer SteveB on stage

Cela a été pour moi l’occasion, au delà de découvrir les Etats-Unis, de rencontrer en personne des experts avec qui j’échangeais depuis plusieurs années (oula que le temps passe :p) et passer des moments juste géniaux à découvrir les prochaines versions tout en profitant du cadre très différent de ce qu’on connait ici en France.

 Bing Maps MVP at Boeing Factory - very long tunnel and Planes!    MVP Bing Maps After technical sessions - Repas MVP Richard Brundritt, Alastair Aitchinson, John O'Brien, Brian Norman, Nicolas Boonaert Jonathan Ng, Dereck Chan, Chris Pietchsmann    MVP Bing Maps John O'Brien, Nicolas Boonaert, Alastair Aitchinson - at Safeco Field - 'How many Space Needles is that?'

Certainement mon événement préféré même si la distance n’est pas toujours la meilleure alliée :)

Le voyage, les rencontres au delà du cadre technique, les rencontres avec les équipes internes de Microsoft, c’est vraiment une chance de pouvoir participer à cet événement, j’espère vraiment pouvoir y participer en Février 2012 !

Ronny Kwon, Guillaume Belmas, Sebastien Warin, Nicolas Boonaert - I am contagious at Microsoft Visitor Center    Guillaume Belmas, Nicolas Boonaert, Sebastien Warin at Safeco Field MVP Summit    Cyril Durand, Sebastien Warin, Nicolas Boonaert - Seattle 2011

 

  • Participation au Wygday 2010 et au Wygday 2011Wygday Bing Maps session de présentation

Dans le cadre des Microsoft Days en région, et comme à son habitude Wygwam organise le Wygday, événement technique et décideur où j’ai depuis 3 ans maintenant, la chance d’animer une session.

Des présentations et des contenus basés sur des retours d’expérience concrets, l’occasion de discuter avec les experts techniques de Wygwam et Microsoft, présents pour partager leurs connaissances à travers une journée dédiée.

mashup_11B796D2[1]

Plus de détails sur les sessions ou l’événement via les liens suivants :

- Session 2010 : Intégrez de la cartographie à vos applications

- Session 2011 : La cartographie donne de la vie à vos données

 

Projets et annonces :

  • Mise en place d’une équipe dédiée à la cartographie au sein de Wygwam

Depuis le début de l’année nous participons activement au support de Microsoft et nous réalisons de nombreux projets en cartographie avec des scénarios avancés d’implémentation et d’intégration divers.

Plus d’information sur les compétences, n’hésitez pas à me contacter ou à consulter la section du site dédiée.

  • Mise en place du partenariat V-TSP Bing Maps : Virtual Technical Support Partner pour la France, Suisse et Belgique

Afin d’assister Microsoft et plus particulièrement l’équipe Bing Maps en France et dans les pays frontaliers, nous avons mis en place le programme V-TSP.

C’est ainsi que nous assurons une aide précieuse aux équipes France en fournissant notamment un support technique dédié et en Français, nous permettant ainsi de partager notre expérience de la plateforme et notre expertise sur les technologies Microsoft avec le plus grand nombre.

 

A suivre

Le temps de reprendre quelques forces pendant cette période estivale et j’entamerai une nouvelle année, passionné et communautaire au maximum !

Alors, toujours plus d’articles, toujours plus de projets en cartographie et toujours plus de plaisir à réaliser des projets variés et innovants.

Bref, une année avec encore plus de défis sur le plan professionnel comme sur le plan personnel !

Nicolas Boonaert à Seattle Space Needle Nicolas à Venise Pont des soupirs Nicolas Boonaert à Oslo Norvege 2011 Nicolas Boonaert - Norvege 2011 à Tromso avec mon amour 

Nicolas.

Les richesses de la plateforme Bing Maps for Enterprise ne résident pas uniquement dans ses contrôles de présentation mais également dans les services qui complètent parfaitement l’offre.

Bing Maps batch geocoding ou géocodage en batch (automatique et en masse) - presentation technique

Rappel sur la plateforme Bing Maps et les services

La plateforme Bing Maps for Enterprise est principalement composée des contrôles disponibles sous formes d’APIs JavaScript, des contrôles Silverlight pour les navigateurs Web ou pour les Windows Phone 7 – 7.0 et supérieurs (Mango) - et enfin à travers une multitude de service qui viennent peu à peu remplacer ceux de MapPoint, produit historique et phare de Microsoft dans le domaine de la cartographie.

D’une manière générale, voici la vue d’ensemble que je me plais à composer et réaliser afin d’expliquer la plateforme technique disponible :

Bing Maps for Enterprise Architecture globale (global architecture) technique 

On remarquera sur ce schéma la présence des constituants de la plateforme et ainsi des éléments suivants :

  • Des contrôles cartographiques
    • AJAX API en version 6.3 et en version 7
    • Contrôle Silverlight
    • Contrôle Windows Phone – Silverlight
  • Des services
    • REST Web Services : géocodage, géocodage inverse, itinéraire, imagerie, recherche de proximité et thématique
    • SOAP Web Services : géocodage, géocodage inverse, itinéraire, imagerie, recherche de proximité et thématique
    • Spatial Data Services : géocodage en masse, hébergement et filtre spatial sur les données
  • Des produits externes – non présentés ici
    • PhotoSynth
    • MapPoint Web Services – déprécié
    • Multimap Web Services - déprécié

 

Géocodage en batch, kezako ?

Le géocodage en batch proposé dans l’offre du Spatial Data Service intégré dans la plateforme Bing Maps propose de réaliser la qualification des entrées saisies en complétant les informations manquantes dans un fichier de retour.

En d’autres termes, il est possible de réaliser les deux opérations suivantes :

  • Géocodage :
    Résolution de la position géographique et adresse complète qualifiée à partir d’une entrée d’adresse
  • Géocodage inverse :
    Résolution de l’adresse à partir de la coordonnées géographiques

La chose la plus intéressante dans le cas client, c’est que chaque batch (ou job) de géocodage ne compte que pour une seule transaction ce qui est un réel avantage puisque l’on peut géocoder ou qualifier au maximum 200 000 éléments par fichier avec une limite de 300 Mo par fichier uploadé pour le batch géocodage.

C’est à ce jour un élément différenciateur des autres solutions du marché puisque c’est à ce jour le seul service public disponible pour effectuer ce type d’opération de manière supportée et rapide.

Concernant la qualité des résultats ou des données utilisées, celles-ci proviennent de Navteq, fournisseur de données cartographiques de la plateforme Bing Maps depuis plusieurs années et cette plateforme intègre de multiples sources de données afin d’apporter la meilleure précision.

 

Scénarii d’utilisation

Dans la plupart des cas, l’utilisation de ce type de service fait sens pour un grand nombre d’utilisateurs.

Géocodage en masse avec Bing Maps - principe généraux

Les principaux scénarii associés sont :

  • Géocodage des adresses qualifiées déjà contenues dans une base
  • Géocodage des adresses approximatives contenues dans une base
  • Géocodage inverse de points capturés

Dès lors que l’on observe le besoin d’obtenir un référentiel adresse de qualité et géo référencé, on peut utiliser ce service pour enrichir nos propres set de données.

 

Description de la procédure pratique

Pour cela, il faut comprendre le processus qui est respecté pour l’utilisation de ce service : Geocodage en batch - fonctionnement et processus d'utilisation des possibilités de géocodage d'un grand nombre d'adresse provenant d'un fichier XML ou CSV (ou Excel) en coordonnées géographiques latitude et longitude - transformation d'une adresse en latitude longitude d'un point géographique

D’une manière générale, on observe le processus suivant :

  1. Intégration et consolidation des données d’entrée
  2. Export simple au format utilisé par le service Bing Maps
    • CSV : séparateur VIRGULE, séparateur PIPE
    • XML : schéma disponible via ce lien
  3. Création du job de géocodage en utilisant le fichier exporté
  4. Inspection de l’état de la tâche
  5. Traitement de la réponse et intégration éventuelle des résultats

 

En concret

Après avoir couvert les aspects généraux, intéressons nous à un exemple concret d’utilisation de ce service.

Voici un exemple de géocodage qui respecte les étapes suivantes :

  • Etape 1 : Intégration et consolidation des données

Bing Maps batching geocodage - Géocodage en masse intégration et consolidations des données

Depuis la base de données, on récupère les colonnes qui correspondent aux informations utiles pour le géocodage. Typiquement, il faut de manière simple réussir à extraire les informations suivantes :

  • Identifiant : permet notamment de fusionner les résultats une fois l’opération réalisée
  • Adresse formatée
  • Ville
  • Code postal

Il est important de qualifier la donnée avant géocodage en assurant la qualité de la saisie des adresses, le bon formatage de celles-ci qui devra respecter, pour obtenir le meilleure résultat en France, le format suivant que je recommande :

*Numero* *Rue*,*CodePostal*, *Ville*, France

Ce qui donne des adresses telles que :

12 rue de la corniche, 59890, Quesnoy sur Deûle, France
58 rue Delphin Chavatte, 62840, Laventie, France

 

  • Etape 2 : Export du fichier à géocoder

Bing Maps géocodage en masse etape 2 Export du fichier à géocoder (CSV, XML ou depuis Excel)

Il vous faut exporter vos données dans un format supporté, la liste des formats supportés ainsi que les fichiers d’exemples sont disponibles à travers ces liens :

Dans notre cas présent, nous pouvons utiliser le fichier d’exemple que voici, au format CSV utilisant le PIPE comme séparateur :

168|fr-FR||||France|||Guéreins|||||||||||||||||||||||
169|fr-FR||||France|||Hautecourt Romanèche|||||||||||||||||||||||
170|fr-FR||||France|||Hauteville-Lompnes|||||||||||||||||||||||
171|fr-FR||||France|||Hostias|||||||||||||||||||||||
172|fr-FR||||France|||Hotonnes|||||||||||||||||||||||
173|fr-FR||||France|||Illiat|||||||||||||||||||||||
174|fr-FR||||France|||Injoux Génissiat|||||||||||||||||||||||
175|fr-FR||||France|||Innimond|||||||||||||||||||||||

 

  • Etape 3 : Création du job

Bing Maps géocodage en masse etape 3 - Création du job (Dataflow Job API)

Pour ce faire, plusieurs options, vous pouvez tout à fait utiliser vos propres applications et intégrer de ce fait les éléments selon vos besoins en vous appuyant éventuellement sur cet exemple de code : http://msdn.microsoft.com/en-us/library/ff701729.aspx.

Vous pouvez également utiliser différentes solutions applicatives comme par exemple celle de Johannes Kebeck dont les sources et l’application sont disponibles ici, ou encore le loader étendu de Inknowledge disponible ici.

Pour créer ce job, il vous sera nécessaire d’obtenir une clé si vous n’en avez pas déjà, celle-ci peut être générée en se connectant sur le portail business de Bing Maps avec un compte associé à un Live ID : http://www.bingmapsportal.com/

 

  • Etape 4 : Inspection de l’état de la tâche

Bing Maps géocodage en batch et en masse etape 4 - Inspection de l'état de la tâche via le service geocode data flow api géocodage

Il est possible de contrôler l’état d’une tâche de géocodage en batch et de récupérer les résultats pour une durée de 15 jours après réalisation de cette opération.

Pour obtenir l’état d’un job de géocodage, la format de l’adresse à utiliser est la suivante :

http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode/jobID?output=output&key=BingMapsKey

Dès lors, il est possible de spécifier le format de la réponse en paramètre en spécifiant la valeur du paramètre output qui peut prendre les valeurs suivantes :

  • xml : format de sortie sous forme de fichier au format XML
  • json (défaut) : format de sortie de fichier au format JSON

Dans cette URL les paramètres sont donc :

  • jobID : identifiant unique du job
  • output (alias ‘o’) : format de la réponse (voir ci-dessus)
  • key : Clé Bing Maps utilisée

Voici un exemple d’URL :

http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode/e14b1d9bd65c4b9d99d267bbb8102ccf?key=SAMPLEKEY&o=xml

Ici la documentation complète sur le type de réponse retournée : http://msdn.microsoft.com/en-us/library/ff701730.aspx

 

  • Etape 5 : Traitement de la réponse

Bing Maps géocodage en masse etape 5 - traitement de la réponse recue du service de géocodage en masse

Une fois l’opération réalisée, le résultat obtenu peut être téléchargé en utilisant une adresse au format suivant ou en utilisant le lien disponible dans la réponse de demande de statut lorsque l’opération est déclarée comme ‘success’ :

https://spatial.virtualearth.net/REST/v1/dataflows/Geocode/jobID/output/succeeded?key=MyDataflowJobKey

Les paramètres sont les suivants :

  • jobId : identifiant du job de géocodage disponible
  • ouput : format de sortie
  • key : clé Bing Maps ayant servie lors de la création du job de géocodage

Plus d’informations via ce lien : http://msdn.microsoft.com/en-us/library/ff701735.aspx

On obtient alors une réponse au format choisi et il suffit d’enregistrer cette réponse et de manipuler le document résultant, avec par exemple le composant SSIS et l’outil d’import intégré à SQL Server.

Il est recommandé, selon les usages, d’utiliser les types géographiques en intégrant les valeurs issues du géocodage en construisant dynamiquement la valeur dans la colonne.

Utilisation du type géographique suite au géocodage en masse depuis Bing Maps et inséré dans SQL Server 2008

 

Conseils et contraintes d’utilisation

Afin d’utiliser au mieux et surtout obtenir les meilleurs résultats, voici quelques conseils :

  • Automatiser au maximum vos exports de données formatées pour Bing Maps, cela vous assurera que cela fonctionne à chaque fois et simplifiera les traitements ultérieurs
  • Faire des tests avec un nombre restreints de point ou adresses en entrée et surtout des résultats dont vous pouvez vérifier la précision ou la véracité, puis continuer sur le reste des données
  • Privilégier l’utilisation du format CSV avec pour séparateur le PIPE, bien plus pratique avec le format d’adresse en France
  • Spécifier la locale et la culture à travers vos fichiers (en France, il s’agit de fr-FR, voir l’extrait de fichier d’exemple plus haut)

Les contraintes d’utilisation sont liées à celles imposées par le service en tant que tel. Celles-ci sont les suivantes :

  • Le fichier à envoyer doit respecter un format parmi ceux supportés :
    • CSV, XML
  • Le fichier doit :
    • Etre de taille inférieure à 300 Mo
    • Contenir des informations encodées en UTF-8
    • Etre limité à 200 000 entités à traiter
  • Respecter les limites d’utilisation :
    • Maximum de 10 jobs simultanés par compte Bing Maps
    • Maximum de 50 jobs par période de 24h
    • Maximum de jobs selon la clé d’utilisation (nombre de requêtes associées au type de clé Bing Maps)

 

Pour aller plus loin

Les résultats fournis par ce service ne se limitent pas à une simple position géographique, ou adresse formatée. On observe en effet d’autres informations qui peuvent être utiles pour analyser et filtrer les résultats.

Ces informations sont étroitement liées au moteur de géocodage utilisé en interne par Microsoft. On retrouve les informations suivantes :

  • Confidence : information indiquant la confiance ou le degré de précision associé à l’opération de géocodage (ou géocodage inverse) opérée
    Ex : High, Medium, Low
  • EntityType : information indiquant le type d’objet associé au géocodage
    Ex : Address, PostalCode1, RoadBlock

Ces informations peuvent s’avérer plus qu’utiles puisqu’elles peuvent être utilisées pour fusionner les sources de données et garantir la qualité globale de l’information.

Il est également à noter qu’il est possible de récupérer la liste des éléments n’ayant pas réussi à être résolus à travers un fichier spécifique, celle-ci peut alors faire l’objet d’une qualification plus précise ou d’un traitement spécifique.

 

Conclusions

Ce service est un réel avantage proposé à travers la plateforme Bing Maps for Enterprise et c’est un élément réellement différenciateur de la concurrence à l’heure actuelle. C’est également la seule méthode officielle et supportée de faire ce genre d’opération sur les plateformes de Web API géographique.

Nul doute que l’utilisation d’un tel service peut vous aider à apporter de la cartographie et la localisation de vos données car ici, il faut rappeler que l’on estime que les données géolocalisables ou tout du moins utilisables dans un contexte géographique, en entreprise représenteraient 80% des données déjà acquises par celle-ci, autant de possibilités supplémentaires d’enrichir l’expérience utilisateur et de tirer le meilleur de vos données.

Si vous avez des questions sur ce type d’opération, n’hésitez pas à me contacter via les commentaires ou par mail.

En ce jeudi 9 juin, Wygwam a organisé l’événement Wygday à Lille pour la 5e édition en partenariat avec Microsoft dans le cadre des Microsofts Days en regroupant un grand nombre de participants et d’intervenants pour échanger sur les aspects technologiques.

Bing Maps Presentation - session avec slides et demonstrations - Wygday 2011 à Lille - Nicolas Boonaert, Marie Chenut et Thomas Driancourt présentend la cartographie en utilisant la plateforme Bing Maps for Enterprise

A l’occasion de cet événement, j’ai eu la chance de pouvoir animer une session dédiée à la cartographie et plus particulièrement à la plateforme Bing Maps for Enterprise et les implémentations que l'on peut réaliser.

Pour cette session j’ai convié Marie Chénut et mon collègue Thomas Driancourt, permettant de couvrir tantôt une présentation générale et concentrée client tantôt une présentation technique avec des retours d’expériences et cas concrets utilisant l’API v7 de Bing Maps, la plateforme Azure, les technologies SQL Server et bien entendu HTML5 pour apporter une expérience encore plus impressionnante.

Bing Maps session et presentation

 

Voici la présentation :

 

Ici disponible au format PowerPoint :

http://www.boonaert.net/BingMaps/WYGDAY11%20-%20Bing%20Maps%20for%20Enterprise.pptx

 

Les démonstrations feront l’objet d’articles sur ce blog prochainement, nous étudions également la possibilité d’en réaliser un Webcast.

A l’occasion de l’émission Pékin Express, nous avons réalisé au sein de Wygwam une application intégrant la solution de cartographie Bing Maps intégrée dans le site de M6.

Une mise en œuvre direct de ce type de solution avec la mise en application de nos processus d’industrialisation autour de la cartographie, lié à notre expertise sur les technologies liées.

Bing Maps for Enterprise - Utilisation de la cartographie interactive dans un contexte de communication et marketing

Information officielle

Retrouvez la publication officielle sur le site de Wygwam à travers ce lien.

Pour sa septième édition de Pékin Express, M6 Web a choisi d’utiliser la cartographie interactive Microsoft® Bing Maps sur le site de l’émission, et ce dans une démarche d’enrichissement éditorial et fonctionnel de ses sites.

Pour « La route des grands fauves », M6 Web a voulu donner pour la première fois la possibilité aux internautes de suivre de façon interactive, étape par étape, le périple des candidats pendant toute la durée de la course.

M6 Web s’est donc associée à Wygwam, support technique externe exclusif de Microsoft® pour la plateforme Bing Maps for Enterprise en France, afin de donner accès à son public à du contenu additionnel géolocalisé grâce à une collaboration avec des experts technologiques reconnus.

Les candidats de Pékin Express ont, cette saison, traversé l'Afrique au cours de 12 étapes, partant du Caire en Egypte pour rejoindre le cap de Bonne-Espérance en Afrique du Sud en passant par le Kenya, la Tanzanie et le Lesotho. Dans ce contexte, les outils de géolocalisation et de cartographie interactive constituent une réelle opportunité, un support technologique en parfaite adéquation avec le programme.

Dès lors, en partenariat avec Microsoft®, Wygwam a développé, en un temps très court, une application de cartographie interactive. Nicolas Boonaert, un des experts MVPs (Microsoft® Most Valuable Professional) de Wygwam, également auteur du livre « Bing Maps, guide complet de la cartographie interactive », a réalisé l’application intégrée au site de l’émission.

Cette dernière utilise la plateforme Bing Maps for Enterprise et la solution d’hébergement Windows Azure afin de garantir les performances et la haute disponibilité de l’application. Une interface d’administration permet également aux équipes de contribution de M6 Web de saisir et éditer les points d’intérêts.

 

Retrouvez le site de l’émission à travers ce lien : http://pekin-express.m6.fr/

Pekin Express - La route des grands fauves 

Informations techniques

L’application a été réalisé en un temps minime grâce à l’utilisation de bloc développé à travers d’autres projets d’implémentation et de templates de code.

La vraie problématique dans le cadre de tels projets réside dans la charge et la volumétrie utilisateur à laquelle sera soumise l’application. Cette charge peut varier fortement en fonction de la diffusion de l’émission, l’épisode et les actions pendant ce dernier et enfin les communications qui sont opérées autour du programme.

Voici une idée d’estimation de la répartition du trafic :  Charge variable de l'application Windows Azure - données factices estimées pour les développements

Dès lors, afin de répondre aux contraintes de déploiement client, pour garantir les performances et la haute disponibilité de l’application, l’utilisation de la solution d’hébergement Windows Azure s’est imposé.

Voici une vue synthétique de l’implémentation technique réalisée :

Architecture technique Bing Maps for Enterprise et Windows Azure pour le site de l'émission Pékin Express de M6

Conclusions

Il est à noter que cette solution est le résultat de l’analyse des besoins comme celle des contraintes imposées par l’environnement du client. Il existe bien des solutions pour réaliser ce type d’application.

Si vous avez des projets similaires, il faut précisément analyser l’ensemble des éléments pour implémenter la solution la plus adaptée, n’hésitez pas à me contacter au besoin pour échanger sur ces points ou pour vous accompagner dans la réalisation.

Aussi, je tiens à remercier les équipes de Microsoft qui ont réussi à se rendre disponibles pour répondre aux différents points techniques et légaux.

Comme à l’habitude, Wygwam organise une nouvelle édition de son événement technique annuel à savoir : le Wygday.

Cet événement est organisé dans le cadre des Microsoft Days où professionnels de l’informatique, experts technologiques et passionnés de ces domaines sont conviés tout au long de la journée, le Jeudi 9 juin 2011.

Wygday 2011 - Evenement gratuit technique et decideur à Lille le Jeudi 9 juin 2011 - Session Cartographie

A propos de la session cartographie

Description :

Cette année encore, j’ai l’opportunité d’animer une session concernant ma spécialité à savoir la cartographie interactive et plus particulièrement, sur les cas d’utilisations impliquant les APIs disponibles en ligne comme l’API Bing Maps for Enterprise.

Bing Maps session de presentation technique developpeur et decideur

Wygwam, pour cette année 2011, est en effet support technique (V-TSP) de Microsoft pour la plateforme Bing Maps en France en Suisse et en Belgique et c’est ainsi que nous répondons aux questions des clients implémentant ces solutions et participons aux phases d’avant-vente et étude sur certaines opportunités.

Cette session se déroulera entre 10h15 et 11h15 et se voudra résolument technique, à destination des développeurs et des décideurs techniques.

 

Speakers :

Cette session sera animée par l’équipe Wygwam accompagnée de Marie Chenut, responsable Bing Maps France, qui introduira la présentation par un rapide tour d’horizon de la plateforme et les dernières nouvelles associées.

Thomas Driancourt et moi-même prendrons ensuite la main pour présenter nos retours d’expériences, les bonnes pratiques et exposer quelques réalisations techniques.

 

Thèmes abordés et contenu

A travers différents retours d’expérience, nous aborderons les sujets concernant l’implémentation de la plateforme Bing Maps for Enterprise dans des cas d’entreprises.

Dans un premier temps nous nous intéresserons à la présentation rapide des briques applicatives et fonctionnelles qui sont à notre disposition avec en vue, un état de l’art concernant l’ensemble de ce qui est disponible sur le marché.

Ensuite nous nous intéresserons par la pratique à la description d’architectures types vous permettant de répondre à vos besoins avec des implémentations intégrant l’utilisation de Windows Azure, SQL Azure et SQL Server avec l’utilisation des types géographiques.

Windows Azure pour application de cartographie Bing Maps    SQL Azure et Bing Maps     SQL Server 2008 type geography Bing Maps

Nous aborderont également les problématiques d’industrialisation autour de vos développements cartographiques.

HTML5 canvas et Bing Maps AJAX v7 Enfin, et à travers ce post, je vous invite à me communiquer vos attentes dans les commentaires, pour information je prévois actuellement de faire des démonstrations impliquant l’utilisation de l’API Bing Maps AJAX V7 en combinaison avec les possibilités d’HTML5 à travers des cas concrets d’utilisation pour étendre les contrôles existant.

Bing Maps AJAX v7 Heatmap

 

Public cible

Cette session s’adresse principalement aux décideurs techniques, développeurs ainsi qu’aux spécialistes SIG.

 

Informations utiles à propos de l’événement

Le Wygday, c’est l’événement public dédié pour rencontrer les experts technologiques et membres de Wygwam et pour échanger sur les sujets qui nous passionnent.

 

Inscription

Pour plus d’informations sur l’événement et pour vous inscrire, n’hésitez pas à vous rendre sur le site de l’événement : http://wygday.wygwam.com/

Wygday 2011 - Inscription

Informations pratiques

Cet événement se déroule le Mardi 8 Juin 2010 toute la journée et ça se passe à Euratechnologies à Lille :

image

Euratechnologies
165, avenue de Bretagne
59000 Lille

 

Le programme

Pour cette nouvelle édition, un programme riche et une organisation nouvelle vont composer cette journée :

Programme du Wygday 2011 - sessions 

Le détails concernant les speakers et le contenu pour chaque session devrait s’étoffer et se préciser à l’approche de l’événement.

 

N’hésitez pas à vous inscrire et à venir nombreux !

A travers ce troisième article, nous allons nous intéresser à la création d’élément géographique en nous concentrant particulièrement sur leur représentation textuelle connue (Well-Known Text – WKT) afin de comprendre comment déclarer ces éléments géographiques.

SQL Server 2008 type geographique geography cartographique et bing maps for enterprise et definition des elements geographiques (point, polygone et linestring) avec SQL Server 2008 et 2011

 

Liens vers les articles liés

Cet article s’inscrit dans la série dédiée aux types géographiques et géométriques :

 

Introduction au Well-Known Text

La représentation textuelle permet de définir des entités géographiques ou géométriques de manière humainement lisible.

Open Geospatial consortium logo Ces entités géographiques et représentation textuelle associée sont étroitement liés aux standards établis par l’OGC (Open Geospatial Consortium).

De cette manière, un élément défini pourra être représenté textuellement de la même façon, quelque soit le système sous-jacent.

Cette représentation en Well-Known Text (WKT) est la représentation textuelle lisible de sa version binaire Well-Known Binary (WKB) qu’il est également possible d’utiliser sur le système SQL Server 2008 et versions supérieures parmi bien d’autres systèmes.

Il existe d’autres représentations des données avec notamment des formats tel que le Geographical Markup Language (GML).

 

Types d’éléments

Evidemment, il existe plusieurs types d’éléments géométriques correspondant respectivement à des représentations de différentes données.

Ces types sont utilisables tant dans un contexte géométrique que géographique comme ici présenté.

Parmi ces types, on retrouve :

  • Les points : POINT
    • ex: Point d’intérêt, bornes, utilisateur…
  • Les lignes ou polylignes : LINESTRING
    • ex: Route, frontières…
  • Les polygones : POLYGON
    • ex: Parcelles, zones vertes…

Et les ensembles associés :

  • Les ensembles de points dits “multipoints” : MULTIPOINT
  • Les ensembles de lignes dits “multilignes” : MULTILINESTRING
  • Les ensembles de polygones dits “multipolygones” : MULTIPOLYGON 
  • Les ensembles d’éléments : COLLECTION

Geometry dans SQL Server - source: http://blogs.msdn.com/blogfiles/davidlean/WindowsLiveWriter/SQL2008SpatialSamplesPartn6ofnBackground_11F89/GeometryTypes_2.png

L’ensemble de ces éléments peut être matérialisé sous la représentation suivante en termes d’architecture :

Architecture des types géographiques (geography) et géométriques (geometry) en WKT

Ces types sont définis dans le document fourni par l’OGC qui s’intitule “OpenGIS Simple Features Specification for SQL” disponible à travers ce lien : http://portal.opengeospatial.org/files/?artifact_id=829

La prochaine version de SQL Server, pour le moment connu sous le nom de SQL Server “Denali” ajoute, en plus d’améliorer les opérations sur le type géographique, le support des types d’éléments suivants par les types d’élément dits “simples” :

L’ensemble des nouveautés concernant le domaine spatial dans la prochaine version SQL Server “Denali” est présenté ici : http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/Spatial_Denali_CTP1.docx

Je reviendrai sur ces nouveautés dans un article dédié qui, je pense, fera sens à la suite de cette série.

 

Construction des coordonnées

SQL Server 2008 et 2011 Denali - type geography Les coordonnées sont les éléments de base définissant les informations géographiques associées à un point dans l’espace.

Ces coordonnées inclut les informations suivantes :

  • Latitude
  • Longitude
  • Optionnels et avec un support limité
    • Altitude
    • Mesure – référence linéaire

Dans la construction des autres éléments, ces coordonnées sont utilisées dans chacune des définitions comme présenté ci-dessous.

 

Construction d’un point

La représentation textuelle d’un point correspond à l’écriture suivante :

POINT(COORDINATES)   ou   POINT(LONGITUDE LATITUDE)

Avec un exemple comme :

POINT(2.75 47.5)

Et en implémentation SQL Server :

DECLARE @center as geography
SET @center = geography::STPointFromText('POINT(2.75 47.5)', 4326)

Ce qu’il est important de noter à travers cette représentation, c’est l’utilisation du mot clé standard ‘POINT’ et la construction qui suit le schéma définissant la longitude dans un premier temps, puis la latitude dans un second temps. Le dernier paramètre de cette représentation correspond au SRID associé à cet élément géographique.

Pour plus de détails concernant le SRID, il faut se référer à la partie 2 de cette série d’article et à travers ce lien.

 

Construction d’une polyligne géographique

Sur le même principe que le point, la définition d’une polyligne utilise le mot clé ‘LINESTRING’ et sa représentation correspond à l’écriture suivante :

LINESTRING(COORDINATES1,COORDINATES2,COORDINATES3)

Avec un exemple, comme :

LINESTRING(2.75 47.5,3 47.5,3 50)

Et ici, en implémentation SQL Server 2008 :

DECLARE @line as geography
SET @line = geography::STLineFromText('LINESTRING(2.75 47.5,3 47.5,3 50)',4326)

Le point particulier avec ce type d’élément que l’on pourrait, par abus de langage, qualifier de géométrie géoréférencée réside dans la construction de point de coordonnées et l’ordre associé qui établit l’élément en tant que tel.

Voici la géométrie obtenue (en projection Mercator) :

LINESTRING geography type - définition WKT SQL Server

 

Construction d’un polygone géographique

Enfin, le polygone respecte le même principe d’écriture en utilisant le mot clé ‘POLYGON’ et présente quelques contraintes d’écriture et définition que l’on aborde juste sous cet ordre SQL :

POLYGON((COORDINATE1,COORDINATE2,COORDINATE3, COORDINATE1))

image Attention : les parenthèses sont doublées dans l’écriture de ce type d’éléments géographiques et la fermeture du polygone en utilisant la même coordonnées géographiques pour le premier et le dernier point.

Avec un exemple comme suit :

POLYGON((2.75 47.5,3.5 47.5,3.5 50, 2.75 47.5))

Et ici l’implémentation SQL Server 2008 :

DECLARE @polygon as geography
SET @polygon = geography::STGeomFromText('POLYGON((2.75 47.5,3.5 47.5,3.5 50, 2.75 47.5))',4326)

image A noter : l'utilisation possible de la méthode STPolyFromText() pour la composition du polygone, comme indiqué ici :
http://msdn.microsoft.com/fr-fr/library/bb933971.aspx

Ici le polygone en résultat :

POLYGON geography type SQL Server 2008 et 11.0 Denali

Comme pour la polyligne, l’ordre des coordonnées importe.

Pour un polygone l’ordre est encore plus important car il est nécessaire de déclarer ces points selon un ordre spécifique dans le sens anti-horaire afin de valider l’orientation du polygone pour permettre l’utilisation au sein de SQL Server 2008.

La prochaine version de SQL Server sera plus souple concernant ces déclarations, mais je reviendrai dans le détails sur les améliorations apportées par la version 11.0 de SQL Server

SQL Server 2008 nécessite que ces géométries géoréférencées soient orientées sans quoi l’erreur suivante peut s’afficher :

Erreur orientation du polygone SQL Server 2008

Cela provient d’un souci de définition qui ne respecte pas les limitations et les contraintes de définition des éléments.

Ici le message d’erreur indique qu’il s’agit d’une définition de polygone erronée car celle-ci excède un simple hémisphère alors que l’on souhaitait définir la géométrie inverse en termes de définition.

Le message d’erreur constaté est le suivant :

A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
Microsoft.SqlServer.Types.GLArgumentException: 24205: The specified input does not represent a valid geography instance because it exceeds a single hemisphere. Each geography instance must fit inside a single hemisphere. A common reason for this error is that a polygon has the wrong ring orientation.

Les polygones doivent en effet être décrit dans le sens anti-horaire pour définir un polygone valide d’un point de vue SQL.

Polygon ring orientation (hemisphere limite) - regle de definition d'un polygone pour SQL Server en utilisant le type géographique 

Le problème se répète et se complique lorsqu’on souhaite désigner un polygone avec plusieurs cercles, aussi appelés polygones complexes, déterminer l’orientation peut alors se révéler plus délicate.

 Polygon complex (with holes) ring orientation (hemisphere limit) - regle de definition d'un polygone pour SQL Server en utilisant le type géographique

Dans le prochain article, on traitera des géométries complexes et composites, avec quelques règles et astuces qui pourront vous aider dans les implémentations que vous en ferez dans vos applications.

 

Conclusions

Le modèle de déclaration des éléments reste la base de l’utilisation des types géographiques au sein de SQL Server 2008 et supérieur.Sql Azure type geographique

Enfin, il est à noter, que ces types géographiques et géométriques sont disponibles dans l’offre de Windows Azure dans SQL Azure depuis juin 2010.

L’utilisation des types géographiques se résume principalement à ces éléments et l’exploitation qui peut en être fait avec les méthodes standards (standard OGC) et étendues propres à SQL Server 2008 que l’on abordera dans la suite de cette série dédiée aux types géographiques.

Microsoft a mis à jour Jeudi, son API Bing Maps AJAX en version 7 sans annonce de nouvelle version pour autant, mais avec son lot de nouveautés et quelques changements techniques intéressants et présentés ici.

Bing Maps for Enterprise version 7 mise a jour

Présentation des nouveautés du portail Bing Maps

Comme pour chacune des mises à jour le portail Bing Maps est un des premiers endroits où l’on peut constater les changements et la mise en avant des nouveautés.

La mise en place et l’implémentation se manifeste en premier lieu par la modification du comportement du contrôle qui propose désormais une inertie caractéristique de l’API Google Maps et d’autres mais aussi des interfaces cartographiques sur périphériques mobiles.

Mais surtout, une des principales nouveautés réside dans l’utilisation du Streetside modifié en ce que Microsoft appelle “Blockview” déjà présenté à travers un article précédent et permettant de visualiser les façades des rues plutôt que d’obtenir un affichage plus commun sous forme de bulles panoramiques telles que le proposait l’ancien portail ou la concurrence.

Bing Maps Streetside streetslide and blockview - version 7

Je vous conseille de tester dans une des villes couvertes afin d’observer l’expérience autour de cette nouvelle présentation, je suis persuadé de l’usage de cette nouvelle vue pour les annuaires géolocalisés.

Je reviendrai très prochainement sur cette fonctionnalité en détail et sur son utilisation dans vos développements.

 

Nouvelles ressources

Afin d’appréhender de manière plus pratique le développement avec l’API Bing Maps v7, Microsoft a mis à disposition quelques éléments nouveau pour accompagner les développeurs.

Ainsi on retrouve l’habituel Interactive SDK (iSDK) pour l’API AJAX v7 maintenant disponible à travers ce lien : http://www.bingmapsportal.com/ISDK/AjaxV7

Bing Maps Interactive SDK v7

 

Présentation des nouveautés techniques

Au niveau des nouveautés techniques, on retrouve des changements radicaux dans la méthode de chargement des scripts qui peuvent éventuellement modifier le comportement de certains de vos développements qui n’auraient pas forcément respecté les recommandations de Microsoft proposées à travers la documentation MSDN.

En regardant de manière plus précise, on peut lister les changements comme suit :

MSDN Bing Maps Best practicesLa liste des modifications techniques est en partie disponible à travers ce lien sur la MSDN : http://msdn.microsoft.com/en-us/library/gg675211.aspx .

Je reviendrai sur la plupart de ces modifications dans des articles techniques dédiés en les mettant en évidence de manière détaillée.

 

Changements à l’issu de cette mise à jour

Comme indiqué, une des fonctionnalités mises à jour concerne le chargement des scripts et cette modification implique un chargement différé qui a été modifié par rapport à la version précédente.

Dès lors, il est possible que sous quelques navigateurs (Firefox 4.0.x et Chrome principalement, erreur du genre Microsoft.Maps.Location is not a constructor…), vous observiez un souci au chargement si vous utilisiez une méthode non préconisé par Microsoft mais qui marchait jusqu’alors et qui résidait à utiliser le code dans un contexte jQuery et plus spécialement lorsqu’on initialise le contrôle ou tout autre composant appartenant au contrôle Bing Maps AJAX v7 à travers un bloc ready() comme suit :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" charset="UTF-8" 
            src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0">
    </script>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js" 
            type="text/javascript"></script>
    <script type="text/javascript">

        $(function () {
            // Initialize the map
            map = new Microsoft.Maps.Map($('#map').get(0), {
                credentials: "Your Bing Maps Key",
                center: new Microsoft.Maps.Location(47.5, 2.75),
                zoom: 4,
                mapTypeId: Microsoft.Maps.MapTypeId.road
            });

        });
    </script>
</head>
<body>
    <div id="map" style="position: relative; width: 800px; height: 600px;">
    </div>
    <div id="opacitySlider" style="position: relative; width: 400px;">
    </div>
</body>
</html>

MSDN Bing Maps Best practicesLa méthode recommandée à ce jour est décrite à travers la page MSDN dédiée disponible via ce lien, n’hésitez pas à m’indiquer si vous observer un quelconque souci en utilisant les commentaires sur ce billet.

On peut au choix, utiliser l’événement onload sur le body (1) ou utiliser un paramètre d’URL qui sera déclenché après le chargement de l’ensemble des scripts et dépendances du contrôle spécifié comme jsonp (2) :

  • 1 : utilisation de l’événement onload
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" charset="UTF-8" 
            src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0">
    </script>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js" 
            type="text/javascript"></script>
    <script type="text/javascript">
        function getMap() {
            // Initialize the map
            map = new Microsoft.Maps.Map($('#map').get(0), {
                credentials: "Your Bing Maps Key",
                center: new Microsoft.Maps.Location(47.5, 2.75),
                zoom: 4,
                mapTypeId: Microsoft.Maps.MapTypeId.road
            });
        }
    </script>
</head>
<body onload="getMap()">
    <div id="map" style="position: relative; width: 800px; height: 600px;">
    </div>
    <div id="opacitySlider" style="position: relative; width: 400px;">
    </div>
</body>
</html>

  • 2 : utilisation du paramètre d’URL onscriptload (méthode jsonp)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript" charset="UTF-8" 
src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&onscriptload=getMap">
    </script>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js" 
            type="text/javascript"></script>
    <script type="text/javascript">

        function getMap() {
            // Initialize the map
            map = new Microsoft.Maps.Map($('#map').get(0), {
                credentials: "Your Bing Maps Key",
                center: new Microsoft.Maps.Location(47.5, 2.75),
                zoom: 4,
                mapTypeId: Microsoft.Maps.MapTypeId.road
            });
        }

    </script>
</head>
<body>
    <div id="map" style="position: relative; width: 800px; height: 600px;">
    </div>
    <div id="opacitySlider" style="position: relative; width: 400px;">
    </div>
</body>
</html>

Bing Maps onscriptload parameter

On remarque ici, parfaitement, l’utilisation du paramètre onscriptload, pour obtenir plus d’information concernant ce paramètre, il faut se référer à la documentation comme indiqué dans la v6.3 :

http://msdn.microsoft.com/en-us/library/cc980837.aspx

 

Mon avis

Bing Maps for Enterprise and HTML5 logoLa mise à jour de l’API AJAX de la plateforme Bing Maps montre l’intérêt de la part de Microsoft pour ce composant JavaScript + HTML (et même HTML5) ce qui est un réel plus quand on voit l’étendue de ses possibilités une nouvelle fois renforcée.

Cependant, et c’est très rarement arrivé depuis des années, la mise à jour ne s’est pas vraiment présenté de manière transparente.

Annoncée tardivement par les équipes de Microsoft mais constatés sur chacun des sites mis en production, ces changements ont causé des soucis pour les sites qui ne respectaient pas forcément les méthodes préconisées par Microsoft.

D’une manière générale, c’est une communication mal opérée des équipes techniques de Microsoft et une mise à jour “under-the-hood” (ou en mode ‘ninja’) qui a en réalité des impacts et qui souligne un manque de rigueur qui pour le coup, est difficile à ne pas remarquer pour certains.

On se souvient les mises à jour mineure opérée sur la version 6.1 et plus récemment sur la version 6.3 qui s’en indiquer quoi que ce soit, a modifié le comportement du script ce qui pouvait avoir des impacts avec les anciens navigateurs, mais sur ce type de service, il faut savoir que c’est une pratique qui parfois intervient et on remarque ce genre de soucis bien plus régulièrement sur les changements de l’API Google Maps JavaScript.

Nous avons pu échanger avec les équipes produits et techniques et il est clair que ce genre de scénario va être gage de prudence pour les prochaines mises à jour imagepour ne pas donner une mauvaise impression quant à la plateforme et à sa pérennité.

Il faut reconnaître, et c’est très facilement remarquable sur le forum officiel et à travers les échanges mail, que Microsoft se rend particulièrement disponible, il suffit de se rendre sur le forum officiel pour remarquer l’implication des équipes techniques.

 

Conclusions

Cette mise à jour du script ajoute quelques fonctionnalités bien utiles et des possibilités nouvelles avec le contrôle AJAX v7 qui ne manque pas d’être le support des ambitions de l’équipe Bing Maps pour apporter de l’innovation.

Il faut rappeler que cette mise à jour ne doit pas être ressenti sur vos sites, alors si vous rencontrez des soucis d’implémentation ou tout simplement si vous constatez un bug technique à la suite de cette mise à jour mineure, n’hésitez pas à me contacter via les commentaires de ce billet.

Wygwam et moi-même sommes à ce titre nominés V-TSP de manière exclusive pour la France, la Suisse et la Belgique pour accompagner Microsoft et ses partenaires, dans ces pays pour toutes questions techniques ou problématique de réalisation de projet.

Après avoir brièvement présenté l’origine de l’implémentation de ce type de données au sein de SQL Server, cet article va s’intéresser au type géographique qui se révèle être très complet et plus qu’intéressant.

SQL Server Spatial geography geometry Bing Maps explication des types géographiques et technique de projection

Avant de commencer à entrer dans le vif du sujet à propos de ce type, il peut être important pour tous de saisir les éléments liés à la géographie et à la cartographie qui ne se résument pas à la simple implémentation technique qui est réalisé dans le produit SQL Server ou dans différentes produits et APIs.

Je ferai donc dans un premier temps une présentation sommaire de l’origine de la cartographie afin de nous préparer à l’utilisation de ce type au sein du produit SQL Server.

 

Historique de la géodésie

La géodésie est un sujet passionnant. C’est en effet une science qui à l’origine existait pour aider la cartographie (au sens construction de carte) mais qui, au vue de certains paramètres, s’est réellement diversifiée pour intégrer notamment l’analyse de la forme et les dimensions de la planète Terre.Géodésie et cartographie interactive - illustration de la théorie de la Terre Plate

Cette science a connu plusieurs périodes où chacun imposait sa vérité scientifique ou non, qui était de plus, très étroitement lié à l’aspect politique et religieux du contexte.

C’est sans nul surprise que vous apprendrez que la Terre est un astre sphérique aujourd’hui mais vous savez comme moi que tout le monde ne pensait pas comme ça de tous temps.

Il faut savoir que certaines hypothèses de ce concept de planète sphérique existaient déjà en Grèce antique mais elles étaient refusées pour des raisons d’influences et de politique, mais probablement aussi par manque de preuves scientifiques.

Géographie et géodésie Terre plate

Cette hypothèse ou cette théorie selon laquelle la Terre n’était pas plate a mis plusieurs centaines d’années pour être entendue et acceptée comme un fait.

 

La géodésie et ce que l’on sait

Plusieurs milliers ou centaines d’années après Aristote, Thalès ou bien d’autres, les révélations sur notre planète ont suivi et nombre de mathématiciens, géographes ou d’autres spécialistes de leurs domaines respectifs nous ont confirmé cette théorie tout en la complétant.

De nombreuses opérations de mesures et calculs ont été requises pour établir le fait que cette bonne vieille planète Terre qui nous abrite n’était pas plate, puis pas uniquement sphérique mais en réalité écrasée au niveau des pôles.

La Terre, dans un modèle simplifiée correspond à une forme de révolution ellipsoïdale autrement dit, une ellipse tournée autour d’un axe passant à travers les 2 pôles.

Ellipsoïde de révolution pour la représentation géographique 

Des études plus avancées ont également prouvé que la forme de la Terre n’était pas si simple et qu’elle ressemblait en réalité à un patatoïde bosselé et c’est réellement cela qu’il faut retenir. Elle présente à sa surface des différences de niveau et des variations du champs de pesanteur présentant une amplitude de différences correspondant à des maximums culminant à 200m.

schema demontrant la forme de la geoide de la terre

Autrement dit, en dehors du niveau du sol variant évidemment de manière importante, on observe surtout une variation du niveau de pesanteur qui traduit une forme modifiée à considérer qui agit à des niveaux qui peuvent réellement être insoupçonnés tels que la durée de révolution de la Terre.

Compte tenu de la taille de la Terre, on se doute que cette différence de mesure n’est pas forcément très relevante dans la majorité des cas d’utilisation avec des outils de cartographie interactive qui présentent une précision largement suffisante et commune à ce type d’usage.

Il est parfois important de considérer ces points avec précision pour des domaines comme la géophysique ou même l’analyse maritime et océanique.

 

Les systèmes géodésiques et coordonnées

Un point bien souvent oublié ou mal présenté concerne le système géodésique dans ces types de données. Ce système correspond au référentiel qui détermine les caractéristiques telles que les rayons associés de l’ellipsoïde utilisée pour la représentation de la Terre, l’origine et les orientations des axes de définition.

Le système géodésique le plus couramment rencontré dans le monde est le système géodésique mondial : le WGS84 (Worldwide Geodetic System –1984) qui nous permets de définir les informations suivantes :

  • Les rayons de la Terre : définit par l’ellipsoïde retenue par le système géodésique GRS 80, corrigée depuis en imposant les valeurs suivantes :
    • Rayon semi-majeur : 6378137 m
    • Rayon semi-mineur : 6356752,314140 m corrigé en 6356752,314245 m
  • Les référentiels de coordonnées :
    • Base des latitudes : équateur (parallèle d’origine)
    • Base des longitudes : méridien IERS (méridien d’origine)

Il existe une panoplie d’autres systèmes géodésiques avec notamment le RGF93 (Référentiel Géodésique Français – 1993) utilisé en France principalement dans les constructions ou les données d’urbanisme plus généralement et qui peut être assimilé au WGS84 dans ses constantes de calcul de coordonnées.

imageLe méridien de Greenwich n’est pas le méridien de référence du système WGS84. Ce dernier, l’IERS méridien de référence est en effet situé un peu plus à l’Est (un peu plus de 100m).
- Source :
http://www.nmm.ac.uk/explore/astronomy-and-time/astronomy-facts/history/the-longitude-of-greenwich

Les coordonnées géographiques correspondent techniquement à une position précise et unique dans le référentiel choisi. Ils permettent de définir un point précis que l’on pourra retrouver ou convertir dans un autre système en se basant sur les constantes.

Latitude et longitude schema explicatif

 

Les systèmes de projection

La représentation du monde réel sur un format à plat (papier ou numérique) implique un choix dans la restitution des informations géographiques.

Il existe de nombreux systèmes de projection qui sont utilisés selon les besoins parmi lesquels on retrouve le plus répandu (en tout cas pour les utilisateurs lambdas) qui est le système de projection Mercator.Projection Mercator 1569

Ce système de projection, introduit en 1569 par Gerardus Mercator, est basé sur une projection cylindrique du monde.

Technique de projection cylindrique

Cette projection est très régulièrement rencontrée et c’est bien souvent celle que l’on est habitué à retrouver depuis les manuels scolaires comme à travers les différents supports.

Elle présente toutefois certaines limites et ses inconvénients lorsque notamment on souhaite afficher des informations dans des latitudes élevées (à proximité des pôles).

En effet, un des principaux problèmes réside dans la déformation qui est appliquée pour représenter le monde et qui peut être mise en évidence en utilisant des indicateurs visuels appelés indicatrices de déformation de Tissot et se présentent comme suit :

Projection Mercator avec indicatrices de deformation de Tissot

Il existe d’autres systèmes de projection permettant d’adapter la vue en fonction de l’information à diffuser. Ainsi, pour une information au voisinage des pôles, on comprends directement que le système Mercator n’est pas optimal et dans ce cas précis on choisira un autre système tel qu’une projection conique de Lambert,un système utilisant une projection azimutale plus adaptée.

Voici les schémas décrivant d’autres techniques de projection avec dans l’ordre, la projection conique, la projection cylindrique et la projection azimutale :

Technique de projection géographique

Il en existe une multitude résultant de systèmes de projection tous différents, comme par exemple :

Projection de Fuller animation d'explication

  • Projection d’Albers – projection conique notamment utilisée par l’Angleterre et les Etats-Unis :

Projection d'Albers

  • Projection de Werner – projection pseudo-conique conforme (pour les gens comme moi, amoureux de la cartographie) :

Projection de Werner explication

 

Combinaison avec les outils et produits grand public

A travers les API grands publics (dont Bing Maps for Enterprise fait partie), on retrouve évidemment la possibilité d’utiliser les principaux systèmes.

Dans SQL Server 2008, on observe la possibilité de définir un identifiant déterminant le système géodésique, le système de projection, les unités utilisées et qui sont indiquées à travers un SRID (Spatial Reference ID).

Cet SRID correspond à un identifiant déterminé par le European Petroleum Survey Group (EPSG) permettant de définir les références comme le système géodésique utilisé et est précisé au moment de la création des éléments géographiques, la liste des SRID supportés dans SQL Server 2008 peut être trouvée à travers ce lien ou en utilisant la commande suivante :

SELECT * FROM sys.spatial_reference_systems

 

Ces mêmes APIs utilisent un système de projection qui peut être assimilé au système WebMercator ou SPHERICAL_MERCATOR avec un SRID ayant pour valeur 3785. Ce dernier peut, la plupart du temps, être assimilé à un SRID 4326 définissant un Mercator classique (basé que l’ellipsoïde plutôt que sur une sphère).

Cette différence peut être constaté et est le résultat de simplification de développement mais également un choix technique. En réalité, une étude plus précise nous révèle qu’ils ne respecte pas tout à fait ce système de projection et que tous imposent une déformation de manière à pouvoir composer le contrôle cartographique sous forme de tuile et composer le monde sur un modèle de QuadTree.

Alastair Aitchison (MVP Bing Maps) a analysé ce point dans le détail et son excellent article présente très justement cette différence et l’approche la plus précise pour cette problématique de projection pour des utilisations plus précise.

Pour la plupart des besoins, l’utilisation du standard (SRID 4326 ou SRID 3785) se révèle très largement suffisant permettant de combiner l’information avec ces contrôles cartographiques des API que l’on connait.

 

Conclusions

Il est important d’être sensibilisé à ce type d’information tout simplement parce qu’elle permet de dialoguer avec les personnes dont c’est le métier et qui manipulent ces notions chaque jour.

C’est aussi important car c’est ce qui aide à intégrer leurs informations, des informations externes ainsi que les références pour enfin les exploiter à travers la plateforme ou l’outil retenu.

Ces grandes notions sur la géodésie et la cartographie abordées, nous allons pouvoir nous intéresser à la suite en mettant en œuvre l’utilisation du type géographique dans le produit SQL Server 2008.

Après avoir été présent tout au long de l’événement Microsoft Techdays 2011 accompagnée de ses partenaires techniques, l’équipe Bing Maps organise un événement à destination des profils développeurs et décideurs techniques avec une journée de conférence technique en anglais, animée par le spécialiste Johannes Kebeck.

Bing Maps Workshop technique - Session BI SQL Azure et bing Maps donnée par Johannes Kebeck

Pour déjà avoir participé à des sessions techniques de ce genre, je ne peux que vous recommander de vous y rendre surtout si vous avez des besoins d’utilisation de la plateforme Bing Maps for Enterprise.

 

Informations

Cet événement a lieu le Jeudi 3 mars 2011 à partir de 9h30 au Microsoft Campus Bing Maps WorkshopMicrosoft Campus dont voici l’adresse pour rappel :

Microsoft Campus
39 Quai du Président Roosevelt
92130 Issy-les-Molineaux

 

Microsoft Campus bing maps session technique

 

Objectifs

Les objectifs de cette journée est de transférer le maximum de connaissances pour répondre à des scénarios tels que :

  • Ajouter de la valeur aux sites web et applications mobiles de vos clients
  • Faire venir les clients vers un point de vente
  • Créer une solution de géomarketing
  • Rendre parlantes les données métiers de vos clients
  • Gérer des forces commerciales ou des flottes de véhicules

 

Programme et speaker

Johannes Kebeck session technique Au programme, Johannes Kebeck EMEA Technical Specialist, va aborder en anglais les  sujets suivants :

  • Why spatial databases?
  • Why SharePoint?
  • Introduction to Spatial data types, indexes and functions
  • Loading the Database
  • Preparing the Database Tables (for AJAX)
  • Creating the Stored Procedures (for AJAX)
  • Using the Bing Maps AJAX Control with Vector Data
  • Extending the Database Tables (for Silverlight)
  • Creating the Stored Procedure (for Silverlight)
  • Using the Bing Maps Silverlight Control with Vector Data
  • Creating Static Tile Layers
  • Using the Bing Maps AJAX Control with Raster Data
  • Using the Bing Maps Silverlight Control with Raster Data
  • Creating Dynamic Tile Layers
  • Adding Charts (AJAX)
  • Adding Charts (Silverlight)
  • Spatial data analysis techniques
  • Presenting spatial analysis in your SharePoint Application

En couvrant les domaines et problématiques telles que :

  • Les bonnes pratiques, techniques et optimisations pour présenter de la donnée cartographique en maximisant les performances et la lisibilité
  • L’intégration de l’API Bing Maps et de SharePoint
  • Les nouvelles idées et approches pour présenter et requêter la donnée géographique
  • L’exploitation des données géographiques au sein de SQL Server 2008 et SQL Azure

 

Produits concernés

L’API Bing Maps for Enterprise, Microsoft Office SharePoint Server, Microsoft Silverlight, Microsoft SQL Server et autres solutions technologiques.

 

Inscriptions

Les inscriptions s’effectuent à travers le site dédié : Bing Maps session technique inscription

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032475042&Culture=fr-FR

 

Quant à moi, je n’y serai pas car je serai dans le même temps au MVP Summit à Seattle avec les autres MVP Bing Maps. J’essaierai toutefois de transférer le maximum d’information concernant cette journée.

A travers cette série d’articles, nous allons aborder l’utilisation des types géographiques (geography) et géométriques (geometry).

SQL Server Spatial geography geometry Bing Maps

 

Apparition des types géographiques et géométriques

La version 2005 de SQL Server avait apporté la possibilité d’utiliser des types définis par l’utilisateur basé sur la CLR .Net.

On parle alors de la technologie SQLCLR (SQL Common Language Runtime) et on retrouve alors la possibilité d’établir un type avancée avec des propriétés et des fonctions spécifiques.

SQLCLR .Net into SQL user defined typeDepuis la version 2008 de SQL Server, Microsoft intègre plusieurs types de données de façon native parmi lesquels on retrouve le type géographique (geography), géométrique (geometry) ainsi que le type hiérarchique (hierarchyid).

 

Usage des types

Ces types représentent des données qui correspondent à un usage précis avec comme indiqué des spécificités d’utilisation ou de fonctionnalités.

Ainsi les types géographiques représentent une donnée sur la surface du globe terrestre basée sur une ellipsoïde choisie.

image

Les types géométriques sont utilisées pour représenter un point dans un système cartésien de coordonnées, soit dans un plan défini par deux axes.

image

Le type hiérarchiques, que je ne traiterai pas dans cette série, présentent un intérêt pour toutes les données qui ont une relation hiérarchique en permettant d’établir un identifiant pour situer la donnée dans un arbre hiérarchique.

 

Intérêts des types géographiques et géométriques

Comme indiqué précédemment, ces types sont fournis de manière native permettent de simplifier l’intégration de ce genre de données en proposant tout un panel de méthode et propriété particulièrement utile pour les procédures SQL.image

C’est ainsi que l’on retrouve, par exemple, des fonctions de détection d’intersections, de support de standard de définition d’éléments (points, multi-ligne, polygones…) ou bien encore d’algorithme utile pour les simplifications ou les calculs de distance.

 

Nous reviendrons en détails dans ces détails dans la suite de cette série et au moment de la description de ces types dans le détails et de manière concrète.

 

Un peu de fun

Et pour rester dans l’esprit de noël, en vous souhaitant un joyeux réveillon :

 image

Pour avoir un petit sapin (dans l’esprit de que proposait mon camarade Alastair Aitchison), retrouvez cette petite requête pour introduire les notions SQL Spatial à travers ce fichier SQL.

 

La suite de la série va nous permettre de nous intéresser au type qui nous intéresse le plus dans le cadre de l’utilisation au sein de la cartographie, à savoir le type géographique.

L’équipe Bing et précédemment le Microsoft Live Labs, ont toujours eu une énorme capacité à innover en termes de technologies Web ou mobile.

Bing Maps et Bing innovation et nouveautés Streetslide vue de façades et integration photosynth

Aussi devant les évolutions de la concurrence, Microsoft et l’équipe Bing Maps n’hésitent pas à toujours repousser les limites technologiques et innover par l’usage.

 

Intégration de réalité augmentée

On se souvient tous de la vidéo de Blaise Aguera y Arcas présentant les nouveautés ajoutées au portail Bing Maps et enchainant enfin sur les futures utilisations qui pourraient intervenir dans les années à venir.

Pour ceux qui voudraient revoir cette vidéo, c’est par ici :

 

Présentation de StreetSlide

Les données de vue de façades acquises par une voiture co-brandée par NAVTEQ et Bing, dont j’abordais une présentation plus complète à travers ce billet, seront donc très bien exploitées chez Microsoft.

En juillet Microsoft Research nous présentait justement une utilisation différente des classiques panorama bien plus courants :

 

Acquisition des données, panorama, StreetSide et recherche visuelle

Dans une nouvelle présentation Blaise présente l’évolution du moteur Bing avec notamment la construction de panoramas avancés (nouveauté qui sera très prochainement intégré au sein du service PhotoSynth qui rappelons-le, fais partie de l’équipe Bing Maps for Enterprise).

Panorama composition PhotoSynth    Panorama composition PhotoSynth  Panorama composition PhotoSynth

Viens ensuite l’exploitation du StreetSlide (ou slidable StreetSide) et StreetSide au sein du mobile (ici iPhone, mais d’autres plateformes sont annoncées en fin de vidéo). Ce mode de visualisation va se révéler très pratique pour se donner une idée de la rue, afficher des informations de position des enseignes.

StreetSide Experience with street (avec rue) StreetSlide StreetSide Experience with street (avec rue)  StreetSlide StreetSide Experience with street (avec rue)

Enfin, et un peu à la manière du projet Goggles de Google, on retrouve une recherche visuelle basé sur la reconnaissance de forme et ici spécialement, de texte pour une utilisation encore plus simple du contexte comme moyen de recherche. La recherche peut être réalisée sur base d’image ou de texte.

Bing Visual search for mobile avec sélection de texte et image    Bing Visual search for mobile avec sélection de texte et image

Bing Visual search for mobile avec sélection de texte et image Bing Visual search for mobile avec sélection de texte et image

Pour voir toutes les nouveautés annoncées en vidéo, cela se passe par ici :

 

Conclusions

L’équipe Bing Maps, et plus généralement Bing, innove toujours plus et cela se voit.

Notons que cette nouveauté devrait être très prochainement disponible sur le MarketPlace d’Apple et également sur d’autres plateformes mobiles, d’ailleurs on retrouve déjà le StreetSide via l’application ici :

http://itunes.apple.com/app/bing/id345323231?mt=8

image

Autant d’usage que l’on devrait également retrouver en partie sur le client Web qui de toute manière s’équilibrera dans l’utilisation, avec la plateforme mobile qui observe une progression incroyable ces dernières années.

A travers des événements de partage de connaissance que l’on réalise au sein de Wygwam, j’ai choisi mon sujet de prédilection avec ici une présentation générale afin de sensibiliser chacun à la cartographie et plus particulièrement la cartographie interactive et l’usage de la géolocalisation.

Cartographie

Voici donc la présentation :

N’hésitez pas à me solliciter si vous avez des remarques par rapport à la présentation où si souhaitez que l’on discute du sujet en personne ou à distance.

La nouvelle version 7 de l’API AJAX ne manque pas d’amener des interrogations légitimes quant à l’évolution du contrôle AJAX et plus généralement de la plateforme Bing Maps for Enterprise.

Bing Maps évolution de la plateforme et précisions - Bing Maps AJAX v7

Lors des Bing Maps Days, événement organisé par Microsoft et dont j’ai fais le résumé dans ce précédent billet, nous avons pu échanger avec l’équipe représentée notamment par Marie Chenut, Tony Young ou encore Johannes Kebeck.

 

Annonce de la nouvelle version 7 de l’API AJAX

Microsoft a annoncé jeudi 18 novembre 2010 la version 7.0 de l’API AJAX à travers son blog officiel :

http://www.bing.com/community/site_blogs/b/maps/archive/2010/11/18/
introducing-the-ajax-v7-control.aspx

Le changement était également introduit à travers un autre billet présentant la nouvelle version du portail Bing Maps disponible ici : http://www.bing.com/community/site_blogs/b/maps/archive/2010/11/18/
announcing-the-new-bing-maps-site-with-a-redesigned-left_2d00_rail-and-broader-access-to-map-apps-_2600_-streetside.aspx

Microsoft, en France et en Europe, a organisé des événements regroupant partenaires et clients afin de communiquer sur les aspects techniques et fonctionnels de cette nouvelle version de l’API AJAX comme à propos de la plateforme plus généralement. Je propose à travers ce lien un résumé complet des présentations partenaires et des contenus techniques.

Bing Maps Days Présentation AJAX Silverlight et Bing Maps for Enterprise API

 

Support de la version 6.3

Microsoft n’annonce pas de date de fin de vie pour cette version de l’API et indique en supplément que si celle-ci devait être programmée, elle n’interviendrait pas avant 2 ans et que cette durée de 2 ans était véritablement une durée minimale.

Microsoft prévoit vraiment un support à long terme, très conscient de l’impact des modifications en profondeur effectué sur l’API AJAX. Bing Maps est une composante stratégique de Microsoft

La plateforme Bing Maps for Enterprise est un élément majeur dans la stratégie de Microsoft, ils n’hésiteront pas à y apporter tout le support nécessaire afin d’aider les entreprises à conserver leurs applications fonctionnelles ou en tout cas à minimiser l’impact des modifications si celles-ci s’avéraient nécessaires après plusieurs années.

 

Compatibilité et maintenance des applicatifs

Les questions de compatibilité sont forcément importantes et nombreuses à la vue des modifications impliquées par la version 7.

Alors fondamentalement quels sont ces changements et quel est l’impact dans les développements. Ici une liste qui classe par impact et type ces derniers :

  • Evolution du modèle objet JavaScript de l’APIModèle objet javascript et extension de Bing Maps AJAX

La modification complète des espaces de nom, classes, propriétés et méthodes bref de l’API dans son ensemble ont un impact important en termes de code.

Cependant, il garantit une meilleure évolutivité et compatibilité en renforçant les performances mais propose également de grandes possibilités en termes d’extension, j’y reviendrai en détails dans de prochains articles.

  • Fonctionnalités retirées

Dans cette version 7 actuelle, on retrouve quelques fonctionnalités qui ont été supprimées ou modifiées en accord avec la stratégie d’extension de leur API.

Ainsi, le printing est modifié ou encore on retrouve le clustering client qui n’est pas directement intégré nativement et nécessitera du code personnalisé. Ces fonctionnalités manquantes ou modifiées pourront être ajoutées/modifiées en tirant partie des possibilités d’extension de l’API précédemment citées.

  • Appel aux méthodes des Web Services

L’ensemble des méthodes qui effectuaient un appel aux services de la plateforme Bing Maps a été retiré pour laisser place à un modèle plus simple laissant la main à l’utilisateur pour effectuer des appels directs aux services REST.

  • Authentification clienteAuthentification cliente de Bing Maps AJAX - Ajax authentication client-side

Ce point prête à réflexion car pour nombre d’utilisateurs de l’API, la gestion de l’authentification n’était pas réalisée et même le fonctionnement de l’API et le système de Microsoft a évolué aux fils des années, sans véritablement être très clairement fixé.

En version 6.3 pour authentifier le site utilisant, il était nécessaire de spécifier la clé en utilisant la méthode SetCredentials de la classe VEMap.

En version 7, il suffit de spécifier cette clé dans le chargement et l’initialisation du contrôle comme suit :

var map = new Microsoft.Maps.Map(
    document.getElementById("mapContainer"),
    { credentials: "Your Bing Maps Key" }
);

Au final dans un contexte d’utilisation commerciale, cette authentification n’est pas fondamentalement modifiée car elle existait déjà et reposée sur le même fonctionnement, seule la méthode de déclaration change.

 

Dans la mesure où la version 6.3 est maintenue et supportée par Microsoft, la maintenance de vos applications ne diffère pas cependant il peut être important de déjà considérer la migration et donc la modification de vos scripts/Frameworks/composants ou de vos applications complètes vers la nouvelle version 7 pour vos prochains projets.

 

Choix technique et préconisations

Ce changement nécessaire dans l’API s’inscrit dans une logique d’évolution de la plateforme et cette nouvelle version va permettre aux équipes de s’appuyer sur ce contrôle pour tirer au mieux partie des nouvelles fonctionnalités d’HTML5 et des capacités toujours améliorées des navigateurs.

Preconisation usage javascript ou silverlight pour Bing Maps Une rapide analyse peut nous indiquer que les récents débats autour du plugin Silverlight et de son utilité pour les prochaines années peuvent amener à penser, comme on peut le voir ici avec l’API Bing Maps, à ce que son intérêt soit réduit à quelques points techniques limités et à des simplifications de développement qui n’en sont pas vraiment.

Les deux contrôles ont le mérite d’exister et ces derniers se complètent pour répondre au maximum de scenarios.

En clair ici, ce contrôle AJAX en nouvelle version souligne la volonté de Microsoft de continuer de miser sur les technologies standards du web sans vouloir imposer sans cesse le plugin Silverlight.

  Utilisation Bing Maps AJAX controle et REST choisir

Actuellement, pour Bing Maps, la solution à privilégier est très clairement celle de l’utilisation de l’API AJAX couplée à celle des REST Web Services. C’est le discours tenu dans la session technique de Johannes Kebeck, c’est également mon avis.

Plusieurs raisons à cela :

  • Compatibilité multiplateforme et multi-navigateurs + support HTML5
  • Possibilité d’extension du modèle objet utilisé (prototype-based)
  • Capitalisation de connaissance et réutilisabilité

On pourrait trouver bien d’autres raisons qui justifieraient ce point de vue, et d’autres qui contrediraient parfaitement en favorisant l’utilisation du contrôle Silverlight. Comme dans tout projet, il n’existe pas de solution simple et à chaque besoin, sa solution adaptée.

Autrement dit, il faut très clairement estimé le besoin et les solutions techniques que l’on a, les avantages et inconvénients de ces dernières.

Il y aura ainsi des cas d’utilisation où utiliser AJAX sera le choix le plus judicieux, et inversement où retenir Silverlight sera plus pertinent. C’est d’ailleurs pour cette raison que Microsoft continue de supporter activement les deux contrôles.

 

Stratégie et solutions pour une migration soupleMigration 6.3 a 7 BingMaps AJAX

Il existe plusieurs solutions possibles permettant de minimiser l’effort de modification des scripts existants.

La liste de ces solutions n’est pas exhaustive, mais parmi celles-ci on peut retrouver :

  •  Migration partielle des scripts :

En utilisant cette solution, on peut tout à fait envisager de modifier, par exemple, les requêtes de géocodage, de calcul d’itinéraire de manière à appeler les REST Web Services tout en conservant les traitements liés au contrôle en lui-même.

Cette migration partielle permets d’amortir le coût de développement ou de migration à terme à travers plusieurs projets ou plusieurs évolutions du projet tout en garantissant un résultat final concluant.

  • Définition d’un script de compatibilité (notion de stub)Bing Maps retrocompabilité v6.3 à 7 - retrocompatibility javascript Bing Maps API

Cette solution plus complexe à réaliser, proposée suite à une discussion avec mon collègue Aurélien Verla, autrement plus appréciable dans un scénario d’utilisation multiple, elle consiste à réaliser un script à qui on va déléguer le “mapping” des différentes méthodes de l’ancienne API vers celles proposées dans la nouvelle version ou l’appel aux REST Web Services dédiés.

De cette manière, il suffit de modifier la référence au script du contrôle Bing Maps AJAX et d’ajouter la référence à ce simple fichier. L’ensemble du code reste inchangé mais les appels aux méthodes sont réalisés à travers la nouvelle API qui joue le rôle d’un pseudo-proxy d’appel.

L’intérêt est double car on retrouve alors tous les avantages apportés par la nouvelle plateforme en termes de performances ou support navigateur tout en minimisant l’effort de développement.

 

Comme indiqué plus tôt, ces quelques solutions (il en existe d’autres) sont à considérer et à adapter selon le besoin.

 

Avenir de la version 7

Ce lancement de la nouvelle version 7 du contrôle AJAX de la plateforme Bing Maps va permettre de proposer un ensemble cohérent et évolutif.

Microsoft annonce également qu’une prochaine version devrait arriver au courant de Décembre 2010 pour ajouter quelques fonctionnalités manquantes ou suggérées par les clients et qu’ils estiment pouvoir intégrer raisonnablement en accord avec la stratégie avec cette version.

D’un point de vue des projets communautaires, il devrait y avoir des initiatives permettant de simplifier les développements et de fournir les codes usuels à la manière de script d’extension de l’API. Ceci serait alors un équivalent de ce que tout à chacun peut réaliser dans son framework d’entreprise pour cette brique Bing Maps.Evolution de l'API Bing Maps AJAX v7

 

Conclusions

Cette nouvelle version 7 implique des changements profonds de nos développements qui peuvent être minimisés en utilisant les techniques adéquates.

Elle n’est pas sans impact mais Microsoft est conscient des modifications, des impacts et d’expérience, ils ont toujours maximisé avec beaucoup de considération cette rétrocompatibilité et le support de la plateforme comme une composant très importante. C’est d’ailleurs un des points différenciateurs de la concurrence.

Aussi, et dans l’architecture et la conception même de projet, il faut rappeler que dans de nombreux cas, le développement de la couche présentation ici effectué en client-side (JavaScript) doit intégré le fait qu’il s’agit d’une couche pouvant être amenée à évoluer ou être remplacée. Il est donc important d’envisager ce point dans l’architecture logicielle retenue et de prévoir son évolution.

Encore une fois, il y a de forte chance pour que Microsoft et la communauté accompagnent la migration à travers des outils et Frameworks dédiés dans le but de simplifier cette opération.

Enfin, rappelons également que Microsoft et plus particulièrement pour nous Français, l’équipe Bing Maps France et Europe restent mobilisés et accessibles pour vous aider dans vos décisions ou pour vous informer sur la plateforme.

Organisé par Microsoft et plus particulièrement l’équipe Bing Maps, cet événement propose une présentation exhaustive de la plateforme Bing Maps for Enterprise tant à destination des décideurs qu’à des profils techniques.

Bing Maps Days Event conferences et presentation Microsoft

Cet événement s’est déroulé sur 2 jours invitant le premier jour les partenaires de Microsoft et le second jour davantage de clients finaux.

 

Les matinées : décideursMicrosoft le campus Bing Maps Days event

Cette matinée a permis une présentation fonctionnelle et à destination des décideurs de la part de Microsoft par l’intermédiaire de Marie Chenut afin de présenter la plateforme dans ses fonctionnalités, ses nouveautés, ses modes de licence, son prix, le support, la qualité… 

En clair, une présentation très complète permettant de découvrir ou redécouvrir l’offre autour de la cartographie de Microsoft.

A travers ces matinées, on a pu assisté à de nombreux témoignages de la part des clients ou partenaires qui nous ont fait la présentation de leur réalisation.

Dans l’ordre de présentation, ci-après, les sociétés qui ont témoigné leur utilisation de la plateforme Bing Maps.

 

  • Itelios

Itelios logo presentation

En présentant notamment leur application présentée au concours Microsoft pour Windows Phone ainsi que les applications réalisées dans le cadre des campagnes de communication de MSN, Itelios a montré des scénarii d’utilisation intéressant.

quicksilver itelios application  Etremarin.fr itelios presentation

Ces derniers des usages sur Windows Phone 7 ou des applications Web intégrant au passage la technologie Azure pour l’hébergement des données et des applications.

 

  • Daxium

Daxium presentation

Daxium est une société éditrice nous a fait la démonstration de leur solution appelée PictBase déclinée en version mobile, desktop et Saas qui peut être utilisée dans des cas d’utilisation de report de graffitis, de déclaration de PV.

pictbase daxium presentation

Une solution logicielle permettant de composer vos applications simplement tout en intégrant Bing Maps dans ses fonctionnalités de Web Services de geocodage, de géocodage inverse, d’imagerie ou d’itinéraire ou directement à travers le Map Control.

 

  • Masternaut

Masternaut logo presentation

Leader européen dans les applications de suivi de flotte, Masternaut a réalisé une démonstration en direct permettant de suivre avec intelligence certains véhicules et de retrouver des informations sur la conduite, sur les trajets et les délais.

Utilisant Bing Maps pour l’affichage des informations mais aussi pour calculer les itinéraires dans l’application. On retrouve notamment des possibilités de geofencing permettant de suivre l’évolution de la flotte et les actions liées.

Masternaut presensation

 

  • Orange

A travers leur portail Orange, mais aussi Voilà, 118 712 et bien d’autres portails recueillant énormément de visiteurs mensuels avec toutes les problématiques de charge mais aussi de quantité de données.

L’intégration à travers les Map Control de la plateforme Bing Maps pour apporter de l’information géolocalisée sur le portail ainsi que des fonctionnalités d’itinéraire.

Orange 118712 portail presentation

 

  • Cdiscount

Cdiscount presentation

Accompagné par un partenaire, Cdiscount s’est appuyé sur Bing Maps pour apporter une aide à la décision pour le choix de la livraison dans les points relais récemment ajoutés dans les magasins du Groupe Casino.

Cdiscount ajoute une mode de livraison qui connait un grand succès. Le site propose désormais ce mode qui combiné à une cartographie interactive, permets de sélectionner son point de retrait adapté en fonction de la distance et du type de .

 

  • Pericles

Pericles Logo

Une démonstration de qualité sur un produit bien intégré à destination des acteurs du marché immobilier, une bien jolie implémentation d’une base de données très fournie permettant d’obtenir de la géo business intelligence (Spatial BI) très riche à travers l’application nommé “L’observatoire immobilier”.

 

  • RTE Technologies

RTE Technologies logo presentation

Autre société spécialisée dans le suivi d’élément (flotte y compris) proposant une application lourde intégrant de l’intelligence pour le suivi de ces éléments avec des fonctionnalités de

RTE Technologies Presentation

De nombreux cas clients utilisant Bing Maps dans des cas d’usages réellement utiles et exploitables dès à présent.

 

Les après-midi : techniques et développeurs

Johannes Kebeck, comme à son habitude, nous a présenté la plateforme sous un angle beaucoup plus technique en abordant notamment les nouveautés de la nouvelle version 7 de l’API AJAX.

Bing Maps vue générale de la plateforme platform overview

Entre quelques informations sur les prochaines versions, Johannes nous présente  principalement comment utiliser l’API dans son intégralité et notamment à travers des cas concrets intégrant la nouvelle version du contrôle AJAX, du contrôle Silverlight et l’utilisation de Windows Azure.

Les slides de présentation seront très prochainement disponibles et je ne manquerai pas de les disposer ici afin de compléter ce billet avec ces éléments et bien d’autres liens utiles.

 

Conclusions sur l’événement

Avec une population très variée sur les 2 jours, Microsoft, et l’équipe Bing Maps plus précisément, a réussi à regrouper de nombreuses personnes autour d’un événement d’information pour les 2 populations.

Microsoft a annoncé des prochains événements auxquels je ne manquerai pas de participer (en tant que spectateur tout comme en tant que speaker) et de vous tenir informer.

En définitive, un événement intéressant qui permets de communiquer sur les nouveautés et de revoir les personnes qui sont derrière la plateforme Bing Maps for Enterprise, ces dernières qui donnent une dimension humaine en plus d’un support de qualité.

Après plusieurs années en version 6 et au fil des versions mineures jusqu’à la version 6.3, Microsoft annonce et propose la version 7 qui apporte de nombreuses améliorations et de multiples changements dans les développements.

Bing Maps for Enterprise v7 - Découverte de la nouvelle version 7 de l'API Bing Maps

Présentation

La version 6.3 de l’API Bing Maps, arrivée en juin 2010, laisse place à une nouvelle version 7 (version majeure) qui se veut résolument axée sur les performances et sur un réel remaniement de la plateforme.

Ces améliorations se traduisent par des tailles de scripts bien plus faibles, des performances accrues dans le traitement de chaque méthode et au final une API modifié en profondeur afin de supprimer les traces historiques de Virtual Earth en réorganisant et renommant avec beaucoup de rigueur les classes et espaces de noms associés.

Vous pouvez dès à présent apercevoir les changements notoires en termes d’utilisation et d’affichage en vous rendant sur le portail Bing Maps dédié et amélioré, comportant de nombreuses fonctionnalités en vous rendant sur l’adresse (EN-US) : http://www.bing.com/maps/?mkt=en-us

Bing Maps v7 API get directions trafic restaurants  

Nouveautés de la plateforme

Alors sur ce point, peu de nouveautés fonctionnelles mais des nouveautés techniques à foison et un profond changement qui va à nouveau permettre à la plateforme de s’appuyer sur ce socle pour les prochains mois à venir.

Au niveau des nouveautés techniques autres que les gains en performances pures, on peut noter :

  • Changement complet des espaces de noms et classes

Terminé les préfixes de “VE” sur les classe (ex: VEMap, VEShape…), place maintenant à un véritable espace de nom dédié : Microsoft.Maps avec des classes simplifiées (ex: Microsoft.Maps.Map, …) et un ensemble revu de méthodes.

Ce changement permets notamment de garantir une compatibilité forte avec d’autres frameworks (jQuery ou autre…) mais aussi vos propres développements.

Il est à noter qu’on avait alors jamais noté un tel changement depuis la version 3, mais Microsoft, comme à leur habitude conserveront la version courante 6.3 encore active et disponible pendant une période importante en même temps que cette v7.

 

  • Suppression des méthodes d’appels au Web Services

La recherche de proximité, le calcul d’itinéraire ou encore le géocodage nécessite désormais l’utilisation des REST Web Services.

Au passage ce point permettra de mieux comprendre le système de requêtes/transactions associées à l’utilisation du contrôle et des méthodes riches faisant appel au service.

Bing Maps for Enterprise presentation de la plateforme general avantages et inconvenients overview  

  • Nouveau style de carte et intégration améliorée des vues obliques (Bird’s eye view)

Récemment introduit (juillet 2010), les nouveaux fond de carte affichant l’information en style “Road” sont maintenant disponibles dans l’API grand public même s’il reste possible d’utiliser l’ancien style jusque le 30 avril 2011.

Ce nouveau style de carte est également pleinement supporté au sein des Web Services d’imagerie.

Bing Maps new map style style de carte améliorée DNF NGT labels

Les vues obliques sont elles bien mieux intégrées au sein de l’expérience du contrôle qui propose désormais une fonctionnalité d’adaptation automatique du style de carte en fonction du niveau de zoom et de la couverture de la vue courante. Cette intégration améliorée va permettre à l’utilisateur finale de profiter de la meilleure expérience visuelle possible pour un lieu donné.

Lille Bing Maps bird's eye view vue oblique integration AJAX améliorée  New york Bing Maps vue oblique advanced améliorée AJAX

  

  • Support d’HTML5 et support mobileBing Maps mobile Windows Phone iPhone Android

Alors un des points majeurs dans cette nouvelle version concerne le support de l’HTML5 qui rapproche sensiblement l’expérience JavaScript de celle fournie au sein de Silverlight.

L’amélioration du spectre des navigateurs supportés est un point importantt avec notamment le support d’IE7, IE8 et maintenant IE9. Sont également supportés : Firefox 3.6 (sur PC et Mac), Chrome sur PC et Safari 5 sur Mac.

Enfin, point important, le support des navigateurs mobiles avec dans la liste officielle la plateforme iOS de l’iPhone 3GS et iPhone 4.

 

Bien évidemment, je ne manquerai pas de présenter ces éléments et quelques composants utiles dans les prochains billets.

 

Mon point de vue technique

Cette nouvelle version apporte son lot de nouveautés en terme de réorganisation sans vraiment faire avancer les choses pour autant d’un point de vue fonctionnelle.

Certes les performances sont améliorées et l’expérience globale améliorée, mais nombres de fonctionnalités parfaitement supportées en v6.3 le sont très mal en version 7. On peut prendre l’exemple simple de l’impression ou du clustering client natif.

Le changement fondamental dans l’API a des impacts à plusieurs niveaux et m’invite pour la première fois à me poser la question de la pérennité des développements réalisés avec la plateforme. C’est la première fois en plus de 5 ans que j’utilise la plateforme, que je rencontre un tel changement !

La capitalisation concernant l’apprentissage et la connaissance des méthodes et du détail de chacune d’entre elles n’est pas utile dans le cas de ce changement de version majeure, cela peut décevoir ceux qui en ont fait le choix mais il faut relativiser.

Dans tous les cas, cette nouvelle version 7 indique clairement la voie choisie par Microsoft et la communauté ne manquera pas d’échanger avec les équipes et de mettre à jour les différents projets Open-Source afin de profiter de la richesse et puissance du nouveau contrôle.

 

Conclusions et la suite

Nul doute que Microsoft va s’empresser de venir combler les quelques fonctionnalités manquantes ou d’améliorer celle qui présentent quelques dysfonctionnements mineurs.

Cette nouvelle version a clairement pour objectif de renforcer la version AJAX du contrôle de cartographie fournit dans la plateforme Bing Maps for Enterprise, et tous les changements qu’elle introduit sont d’une certaine façon un changement nécessaire.

Plus de Messages Page suivante »


Les 10 derniers blogs postés

- MBA : Pourquoi faire et comment le choisir ? par Blog Technique de Romelard Fabrice le il y a 15 heures et 28 minutes

- Y'a des erreurs qui peuvent rendre le développeur violent par Aleks's Blog le 02-02-2012, 16:33

- [Hyper-V 3] Présentation des commandlets PowerShell par Blog de SPBrouillet (Pierrick BROUILLET) le 01-31-2012, 16:01

- IIS7 – Compression GZIP par Atteint de JavaScriptite Aiguë [Cyril Durand] le 01-31-2012, 15:52

- SharePoint 15 Technical Preview Managed Object Model Software Development Kit par Matthew le 01-31-2012, 12:34

- Office 15 Technical Preview - Open specification Update par Matthew le 01-31-2012, 10:14

- TFS Integration Tools – Installation par Vivien Fabing le 01-31-2012, 00:06

- Test par RonnyK le 01-30-2012, 16:56

- [SharePoint 2010] Désactiver le correcteur orthographique dans les pages d’un site de publication par Jean-Christophe Brabant le 01-30-2012, 09:30

- [SharePoint 2010] Site internet et performances : poids et nombre des ressources par Arnault Nouvel le 01-30-2012, 00:52