NOTES DE PUBLICATION MAPINFO PRO - MAPINFO PRO VERSION 2019.1 - PITNEY BOWES
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
MapInfo Pro Version 2019.1 Notes de publication MapInfo Pro Contenu : Introduction 2 Remarques à propos de cette version 2 Configuration requise 33 Dépendances et prérequis 33 Connexions et prise en charge des bases de données MapInfo Pro 37 Prise en charge de Microsoft Office 38 Prise en charge du serveur Web MapInfo Pro 38 Installation de MapInfo Pro 38 Réparation de MapInfo Pro à partir du fichier .MSI 46 Avis de prise en charge 47 Téléchargement d'outils et d'applications 48 Localiser votre documentation 48 Données exemples améliorées 49 Attribution open source 50
Notes de publication MapInfo Pro 2019.1 Introduction Ce document vous fournit une liste des nouvelles fonctions et des fonctions améliorées incluses dans cette version. Pour obtenir des informations détaillées sur ces fonctions, reportez-vous au chapitre Nouveautés de MapInfo Pro dans l'Aide de MapInfo Pro. Il fournit également des informations sur des problèmes résolus et sur des problèmes connus qu'il est important de porter à la connaissance des utilisateurs de MapInfo® Pro. Remarques à propos de cette version MapInfo Pro Nouveautés de MapInfo Pro Merci d'utiliser le produit de cartographie le plus évolué de la gamme Pitney Bowes Inc. ! La cartographie informatisée poursuit son développement. Pitney Bowes Inc. ouvre la voie en proposant de nouveaux produits conçus pour satisfaire tous les besoins, des plus simples aux plus spécifiques. Voici une liste des fonctions et améliorations les plus importantes prévues pour être publiées avec MapInfo Pro 2019.1. Voici les points les plus importants : Nouvelles caractéristiques MapInfo Pro version 2019.1 Prise en charge du langage Python MapInfo Pro prend désormais en charge l'écriture de compléments en langage Python. Cela permet aux développeurs de tirer parti du langage Python et de ses bibliothèques/modules existants lors de l'écriture de modules d'extension MapInfo Pro. Python, avec son ensemble de bibliothèques riche en fonctionnalités, est une plate-forme très populaire pour l'analyse et la visualisation de données. Nous avons fourni aux développeurs et aux analystes de données Python un moyen plus simple de travailler avec les données MapInfo en leur fournissant un accès aux données des tables MapInfo Pro. Bien que vous puissiez utiliser n'importe laquelle des bibliothèques et des fonctionnalités disponibles pour Python, vous pouvez également analyser des données d'attributs de tables MapInfo MapInfo Pro 2019.1 Notes de publication MapInfo Pro 2
Notes de publication MapInfo Pro 2019.1 Pro à l'aide du riche jeu d'outils d'analyse de données disponible (par exemple, Pandas, SciPy, Matplotlib, etc.), qui ajoute davantage de capacités et de fonctionnalités à celles existantes. Pour plus de détails, voir Utilisation du langage Python sous Création d'un complément dans le Guide Référence d'extensibilité de MapInfo Pro. Installation Python 3.7.6 x64 est installé avec MapInfo Pro dans le répertoire d'installation du dossier Python37. MapInfo Pro utilise l'implémentation PythonNet pour interagir avec l'environnement Python et autoriser l'interopérabilité entre .NET et Python. L'installation de Python jointe à MapInfo Pro comprend les modules préchargés suivants : EFAL est installé avec MapInfo Pro dans le répertoire d'installation du dossier EFAL. 1. numpy 2. scipy 3. seaborn 4. pandas 5. matplotlib 6. osgeo (Accès à la bibliothèque GDAL avec le pilote MapInfo EFAL pour le format NativeX) 7. ptvsd (Outils Python pour le serveur de débogage Visual Studio) 8. mi_py_debugger (Le module personnalisé permet le débogage du script Python dans MapInfo Pro) Pour installer des modules Python supplémentaires, ouvrez le script prompt.bat dans le dossier %INSTALLDIR%\Python37 et exécutez la commande suivante : python -m pip install module_name Exécution de scripts et de compléments Python L'instruction MapBasic « run application » prend désormais en charge l'exécution des fichiers *.py. Tout fichier Python valide fonctionnera à condition que les modules requis soient installés. La boîte de dialogue Exécuter un programme (Ctrl+U) répertorie désormais les fichiers .mbx et .py. Vous pouvez également faire glisser un fichier .py sur MapInfo Pro pour l'exécuter. MapInfo Pro exécute les fichiers Python de deux manières différentes : 1. Étendue du complément – si le fichier .py est reconnu comme un complément MapInfo Pro, il est exécuté dans sa propre étendue et son propre domaine d'application. Notez que lorsque le complément est exécuté, un fichier .mbx est toujours créé en regard, ce qui signifie que l'emplacement doit être accessible en écriture. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 3
Notes de publication MapInfo Pro 2019.1 2. Étendue globale – si le fichier .py n'est pas reconnu comme un complément MapInfo Pro, il est exécuté dans l'Étendue globale. Il s'agit d'un environnement Python spécial qui est initialisé la première fois qu'un code Python est exécuté. La configuration suivante est effectuée : • Les modules Python sys, clr, subprocess, shlex et matplotlib sont déjà importés dans cet environnement Python spécial. • Le module matplotlib utilise un backend non-GUI appelé agg qui n'autorise pas les appels vers plt.show() depuis MapInfo Pro dans l'Étendue globale. • La référence à l'assembly WindowsBase .Net Framework est ajoutée à l'aide du module clr. • La classe utilitaire PythonProUtil c# est importée sous forme de proUtil de l'assembly MapInfo.Types. • La classe MessageOutput est importée de l'assembly MapInfo.Types. • La classe MessageOutput remplace les valeurs stdout, stdin et stderr Python par défaut et imprime dans la fenêtre de message MapInfo Pro. import clr import subprocess import shlex import matplotlib # Non-GUI backend for matplotlib. use plt.savefig(fname) instead of plt.show() matplotlib.use('agg') clr.AddReference('WindowsBase') from MapInfo.Types import PythonProUtil as proUtil from MapInfo.Types import MessageOutput sys.stdout = sys.stderr = sys.stdin = MessageOutput() • Le dossier RASTER est ajouté au chemin d'accès. • Une variable Python nommée pro est initialisée pour pointer vers l'interface IMapInfoPro. Elle peut être utilisée pour accéder au modèle d'objet de MapInfo Pro et pour exécuter des commandes MapBasic. • Les méthodes d'aide suivantes sont importées dans l'Étendue globale et peuvent être utilisées directement dans les scripts Python : end_mapinfo(interactive) -> Halts MapInfo Pro. Parameters: interactive (bool): prompt to save changes or not when exiting. do(command) -> Execute an interpreted MapBasic command. Parameters: command (str): the command to run. eval(command) -> Evaluate an interpreted MapBasic function. Parameters: command (str): the command to evaluate. get_current_module_path() -> Gets the current executing module path for standalone python script.(In global scope __file__ is not MapInfo Pro 2019.1 Notes de publication MapInfo Pro 4
Notes de publication MapInfo Pro 2019.1 available, therefore use this method.) • Si un fichier startup.py est trouvé à l'un des emplacements suivants, il est exécuté dans la configuration de l'Étendue globale. De la même manière que lorsque startup.wor est trouvé. • FOLDER_MI_APPDATA (-1) • FOLDER_MI_LOCAL_APPDATA (-2) • FOLDER_MI_PREFERENCE (-3) • FOLDER_MI_COMMON_APPDATA (-4) • Dossier dans lequel se trouve MapInfoPro.exe Voir la fonction MapBasic GetFolderPath$() pour obtenir de d'aide sur ces emplacements. Une fois que l'Étendue globale a été initialisée comme ci-dessus, chaque fois que le code Python est exécuté, une copie de l'Étendue globale est créée et utilisée pour exécuter le code. Création d'un complément Python Pour créer un module d'extension MapInfo Pro dans Python : 1. Utilisez l'un des modèles de module d'extension Python existants pour commencer à créer votre module d'extension. L’installation de MapBasic version 2019 contient deux modèles de complément Python permettant de créer un complément MapInfo Pro simple ou un complément de cadre personnalisé de mise en page dans Python. • SAMPLES\RIBBONINTERFACE\Python\py_addin_templates\Simple • SAMPLES\RIBBONINTERFACE\Python\py_addin_templates\CustomFrame 2. Copiez l'un des modèles de complément répertoriés ci-dessus et commencez à le modifier. • Commencez par renommer les fichiers (PY et MB) en fonction du nom de votre module d'extension. • Renommez la référence du module selon vos nouveaux noms de fichier. • Vérifiez tous les TODO dans le code Python et modifiez le code selon vos besoins. 3. Une fois le code terminé, vous pouvez exécuter le fichier Python principal directement dans MapInfo Pro. Si votre complément n'a pas de fichier .mbx correspondant, un nouveau fichier portant le même nom de fichier de base que le fichier .py est créé en regard. Cela signifie que l'emplacement doit être accessible en écriture. Vous pouvez également créer, personnaliser et compiler le fichier de modèle .mb. Remarque : Le nom du fichier MB MapBasic doit être identique à celui du fichier du module Python principal. La classe ci-dessous doit également être présente dans le fichier du module Python principal pour charger le complément. # this class is needed with same name in order to load the python add-in and can be copied # as it is when creating another add-in. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 5
Notes de publication MapInfo Pro 2019.1 class main(): def __init__(self, imapinfopro): self._pro = imapinfopro def load(self): try: # uncomment these lines to debug the python script using VSCODE # Debug in VSCODE with Python: Attach configuration #ptvsd.enable_attach() #ptvsd.wait_for_attach() #ptvsd.break_into_debugger() if self._pro: # obtain the handle to current application if needed self.thisApplication = self._pro.GetMapBasicApplication(os.path.splitext(__file__)[0] + ".mbx") except Exception as e: print("Failed to load: {}".format(e)) def unload(self): try: print("Unloading") self._pro.Ribbon.Tabs['TabMap'].Groups[0].Controls.Remove(self._button) except Exception as e: print("Failed to unload: {}".format(e)) def __del__(self): self._pro = None pass def addin_name(self) -> str: return "Hello Python Add-in" def addin_description(self) -> str: return "Hello Python Add-in Description" def addin_defaultcommandtext(self) -> str: return "Hello Python Add-in Default Command" def addin_defaultcommand(self): self.on_hello_button_clicked(self) def addin_imageuri(self) -> str: return join(dirname(__file__), "images/copyright16.png") MapInfo Pro 2019.1 Notes de publication MapInfo Pro 6
Notes de publication MapInfo Pro 2019.1 Chargement d'un complément Python MapInfo Pro Pour charger un complément Python dans MapInfo Pro, vous devez créer un script MapBasic de démarrage qui chargera le module Python et commencera à l'exécuter. Les exemples de modèles de script MapBasic suivants peuvent être utilisés tels quels ou ils peuvent être modifiés pour charger un complément Python dans MapInfo Pro. 'MBX Template for Simple Python Addin '***************************************************************************** ' Copyright 2020 Pitney Bowes Software Inc. ' All rights reserved. '****************************************************************************/ Include "mapbasic.def" Include "IMapInfoPro.def" Include "ResStrng.def" Declare Method PyAddinAbout Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_About(ByVal p1 as This) Declare Method PyAddinHelp Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Help(ByVal p1 as This) Declare Method PyAddinDefaultCommand Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_DefaultCommand(ByVal p1 as This) Declare Method PyAddinVersion Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Version(ByVal p1 as This) As String Declare Method PyAddinName Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Name(ByVal p1 as This) As String Declare Method PyAddinDescription Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Description(ByVal p1 as This) As String Declare Method PyAddinImageUri Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_ImageUri(ByVal p1 as This) As String Declare Method PyAddinHideRunningProgram Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_HideRunningProgram(ByVal p1 as This) As Logical Declare Method PyAddinProcessCommandUri Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_ProcessCommandUri(ByVal p1 as This, ByVal commandUri as String) As Logical Declare Method PyAddinDefaultCommandText Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_DefaultCommandText(ByVal p1 as This) As String Declare Sub EndHandler Declare Sub Main Declare Sub AddIn_About Declare Sub AddIn_Help Declare Sub AddIn_DefaultCommand Declare Function AddIn_Name() As String Declare Function AddIn_Description() As String Declare Function AddIn_ImageUri() As String Declare Function AddIn_Version() As String MapInfo Pro 2019.1 Notes de publication MapInfo Pro 7
Notes de publication MapInfo Pro 2019.1 Declare Function AddIn_AssemblyName() As String Declare Function AddIn_ClassName() As String Declare Function AddIn_HideRunningProgram() As Logical Declare Function AddIn_ProcessCommandUri(ByVal commandUri as String) As Logical Declare Function AddIn_DefaultCommandText() As String Global mapinfoApplication as This Global mbAddIn as This Sub Main onerror goto ErrorTrap if (SystemInfo(SYS_INFO_MIPLATFORM) = MIPLATFORM_WIN64) then if (SystemInfo(SYS_INFO_MAPINFO_INTERFACE) = MIINTERFACE_RIBBON) then goto ContinueSample end if end if InvalidScenario: Note "This sample can only work with 64-bit Ribbon Interface UX." goto Done ContinueSample: dim app_name as string app_name = ApplicationName$() app_name = Left$(app_name,len(app_name) - 4) dim str_file as string str_file = ApplicationDirectory$() + app_name + ".str" If FileExists(str_file) Then If LoadStrings(str_file) = FALSE Then Note GetResString(IDS_Res_Load_Error) + ApplicationDirectory$() + app_name + ".str" Exit Sub End If End If mapinfoApplication = SYSTEMINFO(SYS_INFO_IMAPINFOAPPLICATION) mbAddIn = New_PythonAddin() if mbAddIn 0 Then call InitializePyAddin(mbAddIn, mapinfoApplication, ApplicationDirectory$() + ApplicationName$()) End if Done: Exit Sub ErrorTrap: Note "Main: " + Str$(err()) + ": " + Error$() MapInfo Pro 2019.1 Notes de publication MapInfo Pro 8
Notes de publication MapInfo Pro 2019.1 Resume done End Sub Sub EndHandler If mapinfoApplication 0 and mbAddIn 0 Then call UnloadPyAddin(mbAddIn) End If mbAddIn = NULL_PTR mapinfoApplication = NULL_PTR End Sub Sub AddIn_About call PyAddinAbout(mbAddIn) End Sub Sub AddIn_Help call PyAddinHelp(mbAddIn) End Sub Sub AddIn_DefaultCommand call PyAddinDefaultCommand(mbAddIn) End Sub Function AddIn_Version() As String AddIn_Version = PyAddinVersion(mbAddIn) End Function Function AddIn_Name() As String AddIn_Name = PyAddinName(mbAddIn) End Function Function AddIn_Description() As String AddIn_Description = PyAddinDescription(mbAddIn) End Function Function AddIn_ImageUri() As String AddIn_ImageUri = PyAddinImageUri(mbAddIn) End Function Function AddIn_HideRunningProgram() As Logical AddIn_HideRunningProgram = PyAddinHideRunningProgram(mbAddIn) End Function Function AddIn_DefaultCommandText() As String Addin_DefaultCommandText= PyAddinDefaultCommandText(mbAddIn) End Function Function AddIn_ProcessCommandUri(ByVal commandUri as String) As Logical AddIn_ProcessCommandUri = PyAddinProcessCommandUri(mbAddIn, MapInfo Pro 2019.1 Notes de publication MapInfo Pro 9
Notes de publication MapInfo Pro 2019.1 commandUri) End Function 'MBX Template for Layout Custom Frame Python Addin '***************************************************************************** ' Copyright 2020 Pitney Bowes Software Inc. ' All rights reserved. '****************************************************************************/ Include "mapbasic.def" Include "IMapInfoPro.def" Include "ResStrng.def" Declare Method PyAddinAbout Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_About(ByVal p1 as This) Declare Method PyAddinHelp Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Help(ByVal p1 as This) Declare Method PyAddinDefaultCommand Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_DefaultCommand(ByVal p1 as This) Declare Method PyAddinVersion Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Version(ByVal p1 as This) As String Declare Method PyAddinName Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Name(ByVal p1 as This) As String Declare Method PyAddinDescription Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_Description(ByVal p1 as This) As String Declare Method PyAddinImageUri Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_ImageUri(ByVal p1 as This) As String Declare Method PyAddinHideRunningProgram Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_HideRunningProgram(ByVal p1 as This) As Logical Declare Method PyAddinProcessCommandUri Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_ProcessCommandUri(ByVal p1 as This, ByVal commandUri as String) As Logical Declare Method PyAddinDefaultCommandText Class "MapInfo.Types.PythonAddinLoader" Lib "MapInfo.Types.dll" Alias AddIn_DefaultCommandText(ByVal p1 as This) As String Declare Sub EndHandler Declare Sub Main Declare Sub AddIn_About Declare Sub AddIn_Help Declare Sub AddIn_DefaultCommand Declare Function AddIn_Name() As String Declare Function AddIn_Description() As String Declare Function AddIn_ImageUri() As String Declare Function AddIn_Version() As String Declare Function AddIn_AssemblyName() As String Declare Function AddIn_ClassName() As String Declare Function AddIn_HideRunningProgram() As Logical MapInfo Pro 2019.1 Notes de publication MapInfo Pro 10
Notes de publication MapInfo Pro 2019.1 Declare Function AddIn_ProcessCommandUri(ByVal commandUri as String) As Logical Declare Function AddIn_DefaultCommandText() As String Global mapinfoApplication as This Global mbAddIn as This Sub Main onerror goto ErrorTrap if (SystemInfo(SYS_INFO_MIPLATFORM) = MIPLATFORM_WIN64) then if (SystemInfo(SYS_INFO_MAPINFO_INTERFACE) = MIINTERFACE_RIBBON) then goto ContinueSample end if end if InvalidScenario: Note "This sample can only work with 64-bit Ribbon Interface UX." goto Done ContinueSample: dim app_name as string app_name = ApplicationName$() app_name = Left$(app_name,len(app_name) - 4) dim str_file as string str_file = ApplicationDirectory$() + app_name + ".str" If FileExists(str_file) Then If LoadStrings(str_file) = FALSE Then Note GetResString(IDS_Res_Load_Error) + ApplicationDirectory$() + app_name + ".str" Exit Sub End If End If mapinfoApplication = SYSTEMINFO(SYS_INFO_IMAPINFOAPPLICATION) mbAddIn = New_PythonCustomFrameAddin() if mbAddIn 0 Then call InitializePyAddin(mbAddIn, mapinfoApplication, ApplicationDirectory$() + ApplicationName$()) End if Done: Exit Sub ErrorTrap: Note "Main: " + Str$(err()) + ": " + Error$() Resume done End Sub MapInfo Pro 2019.1 Notes de publication MapInfo Pro 11
Notes de publication MapInfo Pro 2019.1 Sub EndHandler If mapinfoApplication 0 and mbAddIn 0 Then call UnloadPyAddin(mbAddIn) End If mbAddIn = NULL_PTR mapinfoApplication = NULL_PTR End Sub Sub AddIn_About call PyAddinAbout(mbAddIn) End Sub Sub AddIn_Help call PyAddinHelp(mbAddIn) End Sub Sub AddIn_DefaultCommand call PyAddinDefaultCommand(mbAddIn) End Sub Function AddIn_Version() As String AddIn_Version = PyAddinVersion(mbAddIn) End Function Function AddIn_Name() As String AddIn_Name = PyAddinName(mbAddIn) End Function Function AddIn_Description() As String AddIn_Description = PyAddinDescription(mbAddIn) End Function Function AddIn_ImageUri() As String AddIn_ImageUri = PyAddinImageUri(mbAddIn) End Function Function AddIn_AssemblyName() As String Addin_AssemblyName = "MapInfo.Types" End Function Function AddIn_ClassName() As String Addin_ClassName = "MapInfo.Types.PythonCustomFrameAddinLoader" End Function Function AddIn_HideRunningProgram() As Logical AddIn_HideRunningProgram = PyAddinHideRunningProgram(mbAddIn) End Function Function AddIn_DefaultCommandText() As String Addin_DefaultCommandText= PyAddinDefaultCommandText(mbAddIn) End Function MapInfo Pro 2019.1 Notes de publication MapInfo Pro 12
Notes de publication MapInfo Pro 2019.1 Function AddIn_ProcessCommandUri(ByVal commandUri as String) As Logical AddIn_ProcessCommandUri = PyAddinProcessCommandUri(mbAddIn, commandUri) End Function Enregistrement d'un complément Python Vous pouvez maintenant enregistrer un fichier .py sous forme de complément à partir du gestionnaire d'outils à l'aide de la boîte de dialogue Enregistrer un outil. Notez que lorsque le complément est exécuté, un fichier .mbx est toujours créé en regard, ce qui signifie que l'emplacement doit être accessible en écriture. Configuration du débogage Python à l'aide de Visual Studio Code (VSCODE) 1. Installez les extensions Python et pylint et redémarrez VSCODE. 2. Initialisez les configurations. Une configuration détermine le comportement de VS Code lors d'une session de débogage. Les configurations sont définies dans un fichier launch.json stocké dans un dossier .vscode de votre espace de travail. 3. Pour initialiser les configurations de débogage, commencez par sélectionner la vue Débogage dans la barre latérale. Si aucune configuration n'est encore définie, vous verrez « Aucune configuration » dans la liste déroulante et un point sur l'icône des paramètres. 4. Pour générer un fichier launch.json avec des configurations Python : • Sélectionnez le bouton Paramètres ou utilisez la commande de menu Débogage > Ouvrir les configurations. • Dans la liste déroulante Sélectionner l'environnement qui apparaît, sélectionnez Python. L'extension Python crée et ouvre alors un fichier launch.json contenant un certain nombre de configurations prédéfinies. Vous pouvez modifier les configurations (pour ajouter des arguments, par exemple), mais aussi ajouter des configurations personnalisées. Python: Attach or Python: Remote Attach configuration must be defined like this. { "name": "Python: Remote Attach", "type": "python", "request": "attach", "port": 5678, "host": "localhost", "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "${workspaceFolder}" } ] } 5. Une fois la configuration initiale terminée, configurez VSCODE pour le débogage à distance. • Installez ptvsd à l'aide de python -m pip install --upgrade ptvsd dans votre environnement. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 13
Notes de publication MapInfo Pro 2019.1 • Pour debuggingm, le port par défaut pour l'utilisation de ptvsd est 5678. Vous devrez peut-être ouvrir le port pour le débogage dans le pare-feu approprié ou dans une autre configuration réseau. Pour debuggingm, le port par défaut pour l'utilisation de ptvsd est 5678. Vous devrez peut-être ouvrir le port pour le débogage dans le pare-feu approprié ou dans une autre configuration réseau. Pour plus de détails, reportez-vous au débogage de Python VSCODE : https://code.visualstudio.com/docs/python/debugging Débogage de scripts Python dans MapInfo Pro 1. Dans VSCODE, ouvrez le dossier dans lequel se trouve votre script Python, puis ouvrez le fichier de script Python depuis l'explorateur VSCODE. 2. Ajoutez les lignes suivantes près du haut de votre script. Avoir des commentaires au-dessus ne présente pas de problème. from mi_py_debugger import * pro = attach_debugger() 3. Exécutez le script python (.py) dans MapInfo Pro. Vous remarquerez un curseur d'attente indiquant que le processus attend qu'un débogueur y soit joint. 4. Basculez sur la vue Débogage dans VS Code et sélectionnez Python : joindre la configuration. 5. Démarrez le débogueur VS Code à l'aide du paramètre Python : joindre la configuration modifié. VS Code doit s'arrêter sur vos points d'arrêt définis localement, vous permettant ainsi de parcourir le code, d'examiner les variables et d'effectuer toutes les autres actions de débogage. Les expressions que vous saisissez dans la console de débogage sont également exécutées sur l'ordinateur distant. 6. Démarrez le débogueur VS Code à l'aide du paramètre Python : joindre la configuration modifié. VS Code doit s'arrêter sur vos points d'arrêt définis localement, vous permettant ainsi de parcourir le code, d'examiner les variables et d'effectuer toutes les autres actions de débogage. Les expressions que vous saisissez dans la console de débogage sont également exécutées sur l'ordinateur distant. 7. Pendant le débogage à distance, la barre d’outils de débogage apparaît. Sur cette barre d'outils, le bouton de déconnexion (Maj+F5) arrête le débogueur et permet au programme distant de s'exécuter complètement. Débogage d'un complément Python pour MapInfo Pro 1. Dans VSCODE, ouvrez le dossier de votre complément Python ou tout échantillon de complément Python (par exemple, .\SAMPLES\RIBBONINTERFACE\Python\HelloPython). 2. Compilez le module d'extension .mbx à l'aide de MapBasic IDE ou de Notepad ++, etc. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 14
Notes de publication MapInfo Pro 2019.1 3. Dans le code source de votre complément Python, ajoutez les lignes suivantes : import ptvsd # Allow other computers to attach to ptvsd default port. ptvsd.enable_attach() # Pause the program until a remote debugger is attached ptvsd.wait_for_attach() 4. Exécutez le MBX du module d'extension dans MapInfo Pro v17.0.3 ou une version ultérieure. Maintenant, une fois que MBX est exécuté dans MapInfo Pro, vous remarquerez un curseur d’attente indiquant que le processus attend que le débogueur s’y joigne. 5. Basculez sur la vue Débogage dans VS Code et sélectionnez Python : joindre la configuration. 6. Définissez un point d'arrêt dans le code où vous souhaitez démarrer le débogage. La définition d'un seul point d'arrêt sur l'instruction suivant immédiatement la ligne ptvsd.wait_for_attach() risque de ne pas fonctionner. Définissez au moins un autre point d'arrêt sur une autre instruction. 7. Démarrez le débogueur VS Code à l'aide du paramètre Python : joindre la configuration modifié. VS Code doit s'arrêter sur vos points d'arrêt définis localement, vous permettant ainsi de parcourir le code, d'examiner les variables et d'effectuer toutes les autres actions de débogage. Les expressions que vous saisissez dans la console de débogage sont également exécutées sur l'ordinateur distant. 8. Pendant le débogage à distance, la barre d’outils de débogage apparaît. Sur cette barre d'outils, le bouton de déconnexion (Maj+F5) arrête le débogueur et permet au programme distant de s'exécuter complètement. MapInfo Pro version 2019 Sélectionner par emplacement La nouvelle boîte de dialogue Sélectionner par emplacement vous permet de sélectionner des objets d'une table en fonction de leur emplacement par rapport aux objets d'une autre table. En d'autres termes, cela vous permet de créer une sélection à l'aide d'une jointure spatiale entre deux tables. Fenêtre SQL Utilisez la nouvelle fenêtre SQL pour créer et exécuter des requêtes et des instructions SQL. La fenêtre SQL est essentiellement un éditeur de script dans lequel vous pouvez écrire et exécuter une ou plusieurs instructions SQL avec des extraits de traitement de script avant et après. Les scripts sont exécutés à l'aide du mode immédiat interprété par MapBasic et ne sont pas compilés. Améliorations et mises à jour MapInfo Pro version 2019.1 Sélectionner par emplacement (boîte de dialogue) De nouvelles options de sortie ont été ajoutées à la boîte de dialogue Sélectionner par emplacement : MapInfo Pro 2019.1 Notes de publication MapInfo Pro 15
Notes de publication MapInfo Pro 2019.1 • Dans la table La zone de texte Dans la table vous permet de spécifier le nom de la table de résultats. Par défaut, la table de résultats est nommée Sélection. Si vous utilisez souvent la fonction Sélectionner par emplacement et que vous utilisez Sélection comme nom pour votre table de résultats, vous risquez d'accumuler un grand nombre d'anciennes tables de résultats (par exemple, Query1, Query2, Query3, etc.). Pour éviter d'avoir un grand nombre de tables QueryN ouvertes, saisissez un autre nom de table dans le champ Dans la table. Chaque opération Sélectionner par emplacement suivante utilisera ce nom comme nom de table de résultats. De cette façon, vous n'avez affaire qu'à une seule table de résultats, quel que soit le nombre de requêtes effectué. Remarque : Le nom de table que vous saisissez ne doit pas être celui d'une table ouverte. • Afficher les résultats dans une nouvelle fenêtre Données Si vous appuyez sur le bouton, MapInfo Pro affiche les résultats de la requête dans une nouvelle fenêtre Données. • Ajouter les résultats à la fenêtre Carte en premier plan Si le bouton est enfoncé, MapInfo Pro ajoute les résultats sous forme de nouvelle couche à la fenêtre Carte active et amène cette carte au premier plan, ou crée une fenêtre Carte s'il n'en existe pas. • Ajouter une substitution de couleur aux résultats ajoutés à la fenêtre Carte au premier plan (bouton partagé) Lors de l'ajout des résultats de la requête à une fenêtre Carte, cette option applique une substitution de couleur avec la couleur sélectionnée. La substitution de couleur est désactivée par défaut (affiche « Aucune » et une icône en forme de pot de peinture). Cliquez sur le bouton Diviser pour ouvrir la fenêtre contextuelle afin de sélectionner différents modes. • La première case d'option désactive la substitution de couleur, l'icône de bouton partagé affiche le pot de peinture et « Aucune ». • La deuxième case d'option passe en mode « Automatique », dans lequel les couleurs sont initialisées sur un groupe de couleurs qualitatives ColorBrewer (8 couleurs) ; l’icône de bouton partagé change pour afficher la couleur suivante avec une bordure en dégradé. • La troisième case d'option passe en mode « Manuel » en utilisant la couleur actuellement affichée en regard du troisième bouton, l'icône de bouton partagé passe à la couleur sélectionnée sans bordure. Ou vous pouvez cliquer directement sur le menu déroulant de la palette de couleurs pour passer en mode « Manuel », ouvrir le sélecteur de palette de couleurs et sélectionner une couleur différente. Cette couleur reste fixe et ne change pas, sauf si l'utilisateur sélectionne une couleur différente dans la palette ou passe en mode Automatique. Lorsque vous cliquez directement sur le menu déroulant de la palette de couleurs, cela ouvre le sélecteur de palette de couleurs. La section « Couleurs automatiques » affiche toutes les couleurs utilisées en mode automatique. Chacune de ces couleurs peut également être sélectionnée comme couleur manuelle. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 16
Notes de publication MapInfo Pro 2019.1 • Rechercher les résultats dans les fenêtres Carte ou Données Si le bouton est enfoncé, MapInfo Pro recherche les résultats dans les fenêtres Carte et Données. Dans une fenêtre Carte, la vue est zoomée sur l'étendue de la sélection si la case Préférences de carte « Zoomer et centrer sur la sélection » est cochée (voir l'onglet Modification de la boîte de dialogue Préférences de carte). Le bouton est désactivé lorsque le bouton NoSelect est enfoncé. • Exécuter la requête sans modifier la sélection en cours (NoSelect) Si le bouton est enfoncé, MapInfo Pro exécute la requête sans modifier la table Sélection préexistante. Appuyez sur ce bouton si vous devez effectuer une requête, mais que vous ne souhaitez pas désélectionner des lignes déjà sélectionnées. Le bouton est désactivé lorsque le nom de la table de sortie est « Sélection ». Pour activer le bouton, remplacez le nom de la table de sortie par autre chose que « Sélection ». Programme d'installation À partir de la version 2019.1, FDODriver et CatalogBrowser ne sont pas installés comme composants par défaut. Utilisez les paramètres ADDLOCAL pour permettre au programme d'installation en mode silencieux de MapInfo Pro d'installer ces composants. Veuillez noter que les paramètres ProgramFiles, Documentation et Tools sont requis pour permettre une installation correcte de MapInfo Pro. Vous pouvez omettre d'autres composants tels que Python37, FME, FDODriver et CatalogBrowser si vous ne souhaitez pas les installer. Pour en savoir plus, reportez-vous à la page Installation de MapInfo Pro en mode silencieux à la page 43. Recherche rapide Si vous êtes connecté à Internet, vous pouvez désormais rechercher le contenu Software Data et Marketplace à partir de l'outil Recherche rapide. Remarque : Activez cette option en cliquant avec le bouton droit sur l'outil Recherche rapide dans la fenêtre Outils et en sélectionnant Rechercher MapInfo Marketplace. Enregistrement/Restauration des contrôles du ruban du complément sur QAT À l'aide des méthodes IRibbon.SaveRibbonState() et IRibbon.LoadRibbonState(), vous pouvez enregistrer ou restaurer un contrôle ajouté au ruban dans QAT. Le complément doit ajouter ces deux appels de méthode et également définir la propriété IsQAT sur True pour ajouter un contrôle à QAT. Voici la description des deux méthodes : /// /// Load add-in's ribbon state. /// /// a unique name /// Add-in path /// An Add-in can call this to load any items a user has added to the Quick Access Toolbar. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 17
Notes de publication MapInfo Pro 2019.1 /// Only ribbon items with the IsQAT property set to true can be added to the QAT. Gallery controls cannot be added to the QAT. /// A state file is loaded from the location specified by the path with the name made up of the identifier followed by ".QatState.json" /// /// void LoadRibbonState(string identifier, string path); /// /// Save add-in's ribbon state. /// /// A unique name /// Add-in path /// An Add-in can call this to save any items a user has added to the Quick Access Toolbar. /// Only ribbon items with the IsQAT property set to true can be added to the QAT. Gallery controls cannot be added to the QAT. /// A state file is created in the location specified by the path with the name made up of the identifier followed by ".QatState.json" /// /// void SaveRibbonState(string identifier, string path); Remarque : Consultez le complément ProSampleAddin fourni avec MapBasic pour voir un exemple de la façon de procéder. Prise en charge du moteur de base de données Microsoft Office Access 2016 MapInfo Pro utilise désormais le moteur MS Office Access 2016 pour la prise en charge des fichiers MS Access (*.accdb\*.mdb). MS Access 2.0 et les versions antérieures et MS Access 95/97 ne sont pas pris en charge dans ce nouveau moteur. Tous les fichiers MS Access de ces anciennes versions doivent être mis à niveau vers la version 2000 ou une version ultérieure à l'aide de MS Access 2007 afin de pouvoir être utilisés avec MapInfo Pro. Une tentative d'ouverture d'une base de données Access 95 ou Access 2.0 dans MapInfo Pro version 2019.1 (à l'aide du moteur Access 2016) entraînerait une erreur. Une tentative d'enregistrement d'une table dans MS Access 95/97 dans MapInfo Pro version 2019.1 échouerait elle aussi. Importation des bases de données Access 2.0 et Access 95 dans les versions actuelles Access pour Office 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Si vous utilisez une base de données existante au format Access 2.0 (.mdb) ou au format Access 95 (.mdb), dans certains cas, vous pouvez importer des tables, des requêtes et des macros de cette base de données dans une version plus récente d'Access qui utilise le format de fichier .accdb. Pour importer des formulaires et des rapports contenant du code VBA (ainsi que des modules), commencez par convertir votre base de données Access 2.0 ou Access 95 au format de fichier Access 2002 - 2003 ou Access 2000 à l'aide de Microsoft Office Access 2003, Access 2002 ou Access 2000. Vous pouvez ensuite utiliser une version plus récente telle qu'Access 2007 pour MapInfo Pro 2019.1 Notes de publication MapInfo Pro 18
Notes de publication MapInfo Pro 2019.1 convertir ce fichier au format de fichier .accdb qui peut ensuite être ouvert par Access 2010, Access 2013 ou Access 2016. Si vous utilisez Access 2010, Access 2013 ou Access 2016 Access 2007 était la dernière version à prendre en charge l'ouverture, l'importation, la liaison ou l'exportation vers Access 2.0 et Access 95. Vous aurez besoin d'Access 2007 pour pouvoir exporter, importer ou lier des données à partir de fichiers Access 1.0 et 2.0 (Red 2 ou Jet 2) et de bases de données Access 95. Dans ce cas, vous devrez utiliser Access 2007 comme étape intermédiaire pour convertir entièrement une base de données Access 2.0 en l'une de ces versions. Pour plus d'informations, voir https://support.microsoft.com/en-us/office/import-access-2-0-and-access-95-databases-into -current-versions-2e9d8851-101d-4407-a881-65d06bb12aa7?ui=en -us&rs=en-us&ad=us MapInfo Pro version 2019 Améliorations apportées au géocode Passer à la vue classique L'ancien utilitaire Géocodage depuis un serveur est visible uniquement lorsque l'outil Géocodage n'est pas chargé. Une fois chargé, l'outil Géocodage est prioritaire et remplace l'ancienne version. Vous pouvez maintenant revenir à l'utilitaire patrimonial Géocoder à l'aide du serveur sans décharger l'outil Géocoder. Cliquez sur le nouveau bouton de navigation Passer à la vue classique au bas de l'outil Géocoder pour revenir à l'utilitaire patrimonial Géocoder à l'aide du serveur. Crédits de géocodage Tous les détenteurs de licences MapInfo Pro, Basic ou Premium, bénéficieront désormais de 2 000 crédits gratuits par mois. Amélioration apportées à l'outil Compacter Le nom de l'outil Compactage avancé a été remplacé par Compacter. En plus du changement de nom, vous pouvez désormais accéder à l'ancienne fonctionnalité Compacter une table et à l'outil amélioré Compacter à partir de la même interface. L'option Compacter une table de la liste Table sous l'onglet TABLE a été supprimée et ses fonctionnalités ont été ajoutées à l'interface de l'outil Compacter. Une nouvelle liste déroulante Mode est désormais disponible dans la boîte de dialogue Compacter. Cette liste déroulante contient deux options : 1. Simple - Sélectionnez cette option pour compacter une table à l'aide de l'ancienne fonctionnalité Compacter une table. 2. Avancé - Sélectionnez cette option pour compacter une table à l'aide de l'outil amélioré Compacter. Améliorations apportées à l'onglet À propos de Dans l'onglet À propos de de Backstage, vous pouvez désormais facilement trouver des informations sur les paramètres actuels utilisés par MapInfo Pro (tels que le jeu UILocale, AppLocale et le jeu MapInfo Pro 2019.1 Notes de publication MapInfo Pro 19
Notes de publication MapInfo Pro 2019.1 de caractères système utilisés). Le formatage actuel des nombres et de la date/de l'heure en vigueur est également affiché. En haut de la section À propos de, vous trouverez une commande Copier supplémentaire qui permet de copier ces informations dans un courrier électronique et d'autres documents à des fins d'assistance, si nécessaire. Mise à jour des cartes Bing Les cartes Bing ont une période de licence limitée, propre à chaque version de MapInfo Pro. Les cartes Bing et les fonctionnalités Ajouter des routes Bing à la carte et Localiser sur la carte cessent de fonctionner au-delà de la date suivante : • MapInfo Pro 2019 le 1er janvier 2021 • MapInfo Pro 17.0 le 1er janvier 2019 • MapInfo Pro 16.0 le 1er janvier 2018 • MapInfo Pro 15.0 et 15.2 le 1er janvier 2017 Nouveaux systèmes de coordonnées et projections Nouvelles entrées de projection ajoutées à MapInfow.prj Nouvelles entrées stéréographiques polaires ajoutées pour être utilisées dans la catégorie Projection stéréographique polaire universelle. Ces systèmes peuvent appliquer un facteur d'échelle OU une parallèle standard au pôle. Mise à jour de MapInfo MapCad Les mises à jour suivantes sont disponibles dans la dernière version de MapCad disponible avec MapInfo Pro 2019. Restaurer une couche modifiable Nouvel outil spécialement conçu pour l'onglet SPATIAL qui effectue une restauration de toutes les modifications non enregistrées dans la couche modifiable (par exemple, Restaurer table). Si plusieurs modifications sont apportées à la couche modifiable à l'aide de divers outils spatiaux, les utilisateurs peuvent avoir besoin de réinitialiser fréquemment cette couche modifiable. Il est beaucoup plus facile de revenir aux modifications apportées à la couche sans quitter l'onglet Spatial. Pivoter texte Nouvel outil pour pivoter tous les objets texte sélectionnés en utilisant un angle supplémentaire ou absolu. Cette fonction est également disponible à l'aide de la commande MapBasic Exec(). Triangle Nouvel outil pour créer des régions triangulaires. Cela fonctionne de la même manière que la création de rectangles et est souvent nécessaire pour créer des signatures triangulaires ou des flèches. Des triangles équilatéraux et isocèles peuvent également être générés. Cellule (Insérer) Cet outil a été modifié dans cette version. Il est utilisé pour insérer une nouvelle cellule dans une carte. Son utilisation n'a pas changé, sauf en ce qui concerne l'interaction avec les styles de cellule. Une nouvelle icône a été ajoutée pour rendre la fonction plus facile à reconnaître. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 20
Notes de publication MapInfo Pro 2019.1 Style de cellule Cet outil permet de spécifier la cellule en cours et de gérer la bibliothèque de cellules. Il a été considérablement modifié pour faciliter l'utilisation de la boîte de dialogue. La liste de cellules peut maintenant être triée par nom et par ID, et la fenêtre d'aperçu peut être désactivée afin d'améliorer les performances lorsque de nombreuses tables et/ou des tables de grande taille, sont actuellement ouvertes dans MapInfo Pro. L'utilisation de projections cartésiennes a été améliorée et les systèmes de coordonnées non terrestres sont également pris en charge. Pour les projections cartésiennes, une reprojection automatique entre la projection de la bibliothèque et la couche a maintenant lieu. L'ancienne option Appliquer l'ID de cellule de la colonne de la table est supprimée en raison d'erreurs commises avec DoubleClickMouseHandler. Cette option n'était plus utile. Une nouvelle icône a été ajoutée pour rendre la fonction plus facile à reconnaître. Cellule à partir d'une table Ce nouvel outil crée des objets de cellule à l’aide des coordonnées des colonnes d'une table. Cet outil fonctionne beaucoup comme l'outil standard Créer des points ; cependant, au lieu de points, des cellules sont créées. Cellules positionnées à la même distance Ce nouvel outil crée une signature d'accompagnement pour les objets ligne et région. Ces cellules flanquées se nichent contre les bords. Distance Il s'agit de l'outil Distance standard existant de l'onglet CARTE placé dans l'onglet Spatial, car il est fréquemment utilisé dans cet onglet lors de la modification d'objets. Dissocier en lignes Cet outil a été supprimé. La fonctionnalité est déjà incluse dans l'outil Convertir en lignes. Style de coloration syntaxique du Générateur de requêtes La coloration syntaxique du Générateur de requêtes peut être modifiée à partir de MapInfoProStyle.xml, situé dans le dossier de styles du répertoire d'installation. Il s'agit des couleurs de la coloration syntaxique du Générateur de requêtes. Remarque : Définissez la valeur OverrideDefaultStyle sur true afin que les couleurs mises à jour dans ce fichier soient appliquées. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 21
Notes de publication MapInfo Pro 2019.1 Progrès et résolution des problèmes existants MapInfo Pro 2019.1 Identifiant du Description et résolution problème MIPRO-115753 MapInfo Pro se ferme de façon inattendue lors de l'ajout de tables. Résolution : corrigé. MIPRO-115609 Fuite de mémoire lors du traitement d'objets. Résolution : corrigé. MIPRO-115343 Lorsque vous utilisez la commande Modifier le menu, vous ne pouvez pas supprimer un élément du menu contextuel. Résolution : corrigé. MIPRO-114905 Lors de l'utilisation de la commande Mettre à jour dans la fenêtre SQL, la liste déroulante Colonne est grisée si le nom de la table est long. Résolution : corrigé. MIPRO-114556 Dans MS Excel, certaines colonnes sont formatées à tort comme caractère au lieu de flottant. Résolution : corrigé. MIPRO-114380 MapInfo Pro se ferme de façon inattendue lors de l'appel de l'instruction Create ButtonPad à l'aide de OLE dans la fenêtre MapBasic. Résolution : corrigé. MIPRO-113983 Pour définir le style de texte à partir des contrôles de texte de l'onglet MISE EN PAGE, un cadre de texte est requis dans la fenêtre Mise en page. Résolution : corrigé. Vous pouvez maintenant définir des styles de texte même sans créer de cadre de texte dans la fenêtre Mise en page. MIPRO-113908 MapInfo Pro se ferme de façon inattendue lors de la modification des attributs des tables jointes. Résolution : corrigé. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 22
Notes de publication MapInfo Pro 2019.1 Identifiant du Description et résolution problème MIPRO-113895 L'interpolateur TIN crée des résultats incorrects. Résolution : corrigé. MIPRO-113346 Lors de l'utilisation du complément Geocode, des données géocodées partielles sont perdues en cas d'exceptions comme un crédit insuffisant, une déconnexion du réseau, etc. Résolution : corrigé. MIPRO-112786 Les données ne sont pas correctement mises à jour avec Mettre à jour la colonne à l'aide d'une table de requête temporaire. Résolution : corrigé. MIPRO-110832 MapInfo Pro se ferme de façon inattendue lors de la création d'une variable de type d'objet en mode immédiat MapBasic exécuté dans une application de mappage intégrée MapInfo Pro personnalisée. Résolution : corrigé. MIPRO-110703 Dans MS Excel, vous ne pouvez pas ouvrir les fichiers XLSX au format NativeX. Résolution : corrigé. MIPRO-105177 Le datum australien MGA 2020 n'est pas utilisé correctement par FME Quick Translator lors de la création de tables NATIVE MapInfo. Résolution : corrigé. MapInfo Pro 2019 Identifiant du Description et résolution problème MIPRO-112221 L'utilisation de la couche d'animation dans une fenêtre Carte avec Rendu amélioré activé entraîne une fuite de mémoire. Résolution : corrigé. MIPRO-111594 Informations incorrectes dans le fichier journal lors du géocodage à l'aide du serveur PB. Résolution : corrigé. MapInfo Pro 2019.1 Notes de publication MapInfo Pro 23
Vous pouvez aussi lire