Accueil
 

Référence Technique des Carto-Extensions

ATTENTION : les utilisateurs de la version 4.1 du Plug-In sont invités à lire la notice de mise à jour 4.1 vers 5.0 en fin de ce document.

INTRODUCTION

Cartes & Données, c'est en réalité deux éléments bien distincts : le paramétrage et la fabrication de la carte, et la visualisation de la carte fabriquée. Articque vous offre aujourd'hui la possibilité de dissocier les deux éléments, pour intégrer les traitements cartographiques dans votre application, et ainsi concevoir l'interface utilisateur qui vous convient.

Pour cela, nous avons développé les Carto-EXTENSIONS. Historiquement le premier élément de ces extensions est C&D Vision (1997). Il permet en effet, depuis une application de bases de données par exemple, d'afficher une carte calculée à la volée. Puis sont apparus le Plug-In pour 4D (1998), et l'ActiveX (1999), permettant une intégration directe de la carte, et une programmation aisée. Fin 2003 nous sommes fiers de pouvoir vous proposer un Plug-In pour 4D MacOsX, une librairie pour Java et C (Windows et Unix) et un nouveau produit Cartes & Données Serveur destiné à être utilisé par un serveur web applicatif sous Windows, MacOsX et Linux.

Ce document décrit le fonctionnement de toutes les déclinaisons de nos extensions car leurs interfaces (API) sont quasiment identiques. Un petit logo permettra de distinguer les spécificités de l'ActiveX , du Plug-In , de la librairie pour Java et C, ou du C&D serveur .

Cette documentation s'adresse aux développeurs :

  • 4D
  • Visual Basic
  • Delphi
  • Access
  • Cognos
  • Java
  • C
  • Jsp, Asp, Php etc.
  • ...

De plus, pour bien comprendre le présent document et l'utilisation des extensions, il est indispensable de connaître Cartes & Données.

MODES DE FONCTIONNEMENT

L'API est volontairement succinte. C'est parce que la programmation a été réduite à son strict minimum. En réalité on ne programme pas les traitements cartographiques directement dans le composant. On lui fournit tout simplement un organigramme ! Tout le travail a déjà été fait dans Cartes & Données en quelques clics.

Bien sûr, l'API permet de modifier l'organigramme dynamiquement, mais l'effort est minime. Pour faire des cartes avec les carto-extensions, il suffit donc de connaître Cartes & Données et son "Script". C'est grâce au Script que l'on peut modifier les paramètres. Le développeur se promène dans l'arborescence des paramètres, et modifie uniquement ceux qui l'intéressent.

Bref, si l'organigramme convient, il n'est pas nécessaire de programmer pour intégrer la cartographie à votre application. Si par contre vous développez une interface complète spécifique à vos besoins, vous pourrez en quelques lignes de code manipuler la carte à volonté. Voici toutefois quelques recommandations générales avant de commencer :

L'ACTIVEX

L'ActiveX est un composant COM minimum permettant l'affichage d'une carte dans une application supportant les ActiveX, en monoposte ou client/serveur.

L'ActiveX n'est pas publiable sur le web. Il ne faut pas le mettre dans une page asp.

L'ActiveX n'est pas multi-thread et donc ne doit être utilisé que dans le thread principal. Il n'est pas conseillé de l'utiliser sur un serveur web.

LE PLUG-IN POUR 4D

Le Plug-In permet l'affichage d'une carte dans une application 4D en monoposte ou en client/serveur (à partir de la version 6.7). Il permet la fabrication de carte et l'affichage. Mais on ne peut pas publier directement le Plug-In sur le web.

Le Plug-In a une fonctionnalité particulière : il sert également de lien entre le logiciel Cartes & Données et la base 4D. Cela permet un échange dynamique des données entre les deux applications et donc une grande liberté dans les développements.

Lorsqu'on développe une application avec le Plug-In, on crée des objets appelés "INSTANCES", identifiés par leur nom. C'est aussi le nom de la variable de formulaire. Mais on peut aussi créer des instances en dehors des formulaires. Il ne faut pas oublier de détruire les instances dont on n'a plus besoin pour libérer la mémoire associée. Grâce à ces instances, le développeur est libre de développer dans les situations les plus complexes comme les plus simples. Lire attentivement la description de la fonction cd_destroy.

Il n'est pas conseillé d'utiliser le Plug-In dans un serveur Web :

  • Dans 4D version 6, la gestion des process est indépendante des thread systèmes. Donc il est possible d'utiliser le plugin dans un serveur web, même si les performances sont loin de celles de Cartes & Données SERVEUR.
  • Lorsque 4D V7 sortira ce ne sera plus le cas, car cette version prévoit de séparer les process 4D en threads. Il faudra donc alors restreindre les appels au plugin dans un seul thread.
  • Il est très important de concevoir une routine qui nettoie les instances créées par les process web.

LA LIBRAIRIE POUR JAVA et C

La librairie se présente sous la forme d'une DLL sous windows et d'une Shared Library pour Linux et MacOsX. Elle n'est pas interactive, on ne peut utiliser que les exports image et image-map (html).

La librairie n'est pas multi-thread et donc ne doit être utilisée que dans le thread principal. Il n'est pas conseillé de l'utiliser sur un serveur web.

IMPORTANT: (C uniquement) : Lors des retours de fonctions, on obtient parfois une chaine de caractère "const char * ". La chaîne fournie appartient au Carto-Extension, et ne doit pas être modifiée. De plus cette chaine n'est plus valable après le prochain appel de fonction

Lire attentivement la description de la fonction cd_destroy pour la gestion des instances.

Cartes & Données SERVEUR

  Ce programme est destiné à fabriquer les cartes pour un serveur Web. Il peut tourner sur la même machine ou sur une autre si un disque est partagé en réseau.

  Il est accessible depuis n'importe quel serveur web, développé en n'importe quel langage, avec n'importe quel fournisseur. Il faut simplement que l'outil web permette une communication TCPIP par socket. C'est le cas des serveurs Jsp, Asp, 4D, WebSphere, WebObjects, Php, Tcl, CGI etc...

  C&D Serveur fonctionne sous Windows, Linux et MacOsX. Il utilise les threads pour gérer les accès simultanés, et a été optimisé pour des réponses rapides.

  Le protocole de communication est extrêmement simple et est basé sur le langage XML. Une API d'accès est fournie en Java à titre d'exemple. D'autres API seront développées ultérieurement.


LIMITATIONS DES CARTO-EXTENSIONS

  • On ne peut ni ajouter de module, ni en enlever.
  • Le nombre de module de visualisation doit être 1, ni plus ni moins. Cependant, on peut mettre plusieurs instances dans un même formulaire.
  • Les informations contenues dans les fenêtres de paramétrage de Cartes & Données (par exemple la taille de la carte, les résultats de la boîte et moustaches, les résultats de l'A.C.P...) ne sont disponibles que dans l'organigramme, et toutes n'y sont pas. Aucune fonction ne les fournit directement. Les données calculées ne sont pas disponibles non plus.
  • Les déplacement d'objets faits dans C&D ne sont pas mémorisés dans les carto-extensions (pour optimiser les traitements).
  • Un minimum de programmation et une bonne connaissance des Scripts C&D sont nécessaires à la réalisation d'une application utilisant pleinement les carto-extensions. Cependant, grâce aux exemples fournis, un débutant peut faire une représentation cartographique très professionnelle.

NOTICE DE MISE À JOUR 5.5 vers 5.6

Ajout de 7 nouvelles fonctions permettant d'exporter les cartes et les données, de modifier la connexion entre les modules (et donc de changer l'ordre des couches)... :

  • cd_savemap(module_name As String, vxf_path As String, ret As Short)
  • cd_savedata(module_name As String, txt_path As String, ret As Short)
  • cd_link(dad_module_name As String, son_module_name As String, ret As Short)
  • cd_unlink(dad_module_name As String, son_module_name As String, ret As Short)
  • cd_getmodlist(count As Long, list As String, ret As Short)
  • cd_getmapids(module_name As String, list As String, ret As Short)
  • cd_setvalue(color As String, ret As Short)

NOTICE DE MISE À JOUR 4.1 vers 5.0

Les points importants de cette mise à jour sont les suivants :

  • Suppression de la fonction cd_loadpalette : les symboles personnalisés sont maintenant contenus dans le répertoire "symbols" que vous pouvez récupérer dans "Mes documents/articque/cd_5.0" sur Windows ("Documents/articque/cd_5.0" sur Mac OSX) et recopier au niveau de votre application (au même endroit que le fichier passe.txt).
  • 4 fonctions d'export supplémentaires : gif, pdf, emf (Windows uniquement), swf.
  • La fonction d'export en postscript (cd_expps) nécessite 3 arguments supplémentaires : la largeur (width) et la hauteur (height) de l'image à exporter ainsi que le texte à placer en haut de l'image (banner).

NOTICE DE MISE À JOUR 3.7 vers 4.1

Les points importants de cette mise à jour sont les suivants :

  • Les légendes et les décorations (titre, échelle...) doivent être affichées et exportées séparément
  • Suppression de l'export Gif et Bmp
  • Ajout de l'export Png et Jpeg
  • Ajout d'un export "image-map" pour insertion dans une page html
  • Ajout de fonctions pour mieux maîtriser les coordonnées image, le zoom etc.
  • Utilisation du zoom dans l'export image
  • Ajout du nom de l'instance dans toutes les fonctions ( sauf dans l'ActiveX)
  • Standardisation des noms des fonctions en "set..." et "get..."
  • Il n'est plus utile d'appeler cd_create, mais cd_destroy reste disponible pour libérer les ressources
  • Les symboles personnalisés peuvent être placés n'importe où sur le disque et chargés dynamiquement

NOTICE DE MISE À JOUR 3.5 vers 3.7

La grande amélioration du Plug-In est la possibilité de gérer plusieurs cartes en même temps, avec plusieurs instances. De ce fait, les applications écrites pour le Plug-In C&D Version 3.5 ne fonctionneront pas avec les versions ultérieures. En effet, aucune instance n'aura été créée. Pour faire fonctionner l'application, il faut exécuter une fois les fonctions cd_create("nom") et cd_working("nom") avec "nom" = nom de la variable dans le formulaire 4D. S'il y a plusieurs Plug-Ins avec plusieurs noms différents, il faudra répéter l'opération pour chacun. S'il n'y a pas de formulaire contenant de Plug-In (appli web ou simple export), alors il faut choisir un nom fictif et appeler ces fonctions une fois.

Les deux fonctions pourront être appelées au début dans la "Methode Base sur Ouverture" par exemple.

Ensuite le fonctionnement est identique et le code écrit est valable. On pourra cependant simplifier les applications qui contenaient plusieurs formulaires, car maintenant chaque carte est indépendante, et on pourra même mettre plusieurs cartes dans le même formulaire.