nyheder i mapbasic 10.5 og 11 - pitney bowesblogs.pitneybowes.dk/files/dk/mapbasic...
TRANSCRIPT
Peter HorsbPeter Horsbll Mll Mllerller
JuniJuni 20112011
Nyheder i MapBasic 10.5 og 11.0
MapBasic Udviklerdag 2011
Program
Nyheder i MapBasic 10.5
Nyheder i MapBasic 11.0
MapBasic 10.5: IDE
MapBasic-editoren understtter nu filer strre end 64Kb
Jeg vil dog fortsat anbefale, at man anvender en ekstern teksteditor
og blot anvender MapBasic-kompileren nr programmet skal
kompileres/linkes
MapBasic 10.5: Koordinatsystemer
Overstte MapBasic CoordSys til EPSG
CoordSysStringToEPSG( )
Overstte MapBasic CoordSys til element i projektionsfilen
CoordSysStringToPRJ$( )
Overstte MapBasic CoordSys til WKT
CoordSysStringToWKT$( )
MapBasic 10.5: Kort, lag og labels
Tilpasning af lagvisning
Foresprge p StyleOverrideInfo( window_id, layer_number, override_index, attribute)
Stort set samme attributter som lagdelen i LayerInfo()
StteSet Map [ Window window_id ]
Layer layer_id
[[ Style ] Override Add [ override_name] {
[ Using [ Window window_id ] Layer layer_id {
All | Override { override_index | override_name } }]
|
Zoom ( min_zoom, max_zoom ) [ Units dist_units ]
. . .
[ Nodes { On | Off } ]
[ Symbol... ] [, Symbol... ] ...
. . . ]
MapBasic 10.5: Kort, lag og labels Tilpasning af labelvisning
Foresprge p
LabelOverrideInfo(window_id, layer_number, labelove rride_index, attribute)
Stort set samme attributter som labeldelen i LayerInfo()
Stte
Set Map [ Window window_id ]
Layer layer_id
[[ Label ] Override Add [label override_name] {
[ Using [ Window window_id ] Layer layer_id {
All | Override { label override_index | label override_name } }]
|
Zoom ( min_zoom, max_zoom ) [ Units dist_units ]
. . .
[ Enable { On | Off } ]
[ Font... ] [Pen... ] [ With label_expr ]
. . . ]
MapBasic 10.5: Kort, lag og labels
Foresprge p kombineret stil
LayerStyleInfo( window_id, layer_number, override_index, pass_index, attribute )
STYLE_OVR _INFO_LINE
STYLE_OVR _INFO_PEN
STYLE_OVR _INFO_BRUSH
STYLE_OVR _INFO_SYMBOL
STYLE_OVR _INFO_FONT
Et lag kan have en ret stil bestende af flere kombinerede linjer eller symbol, som vises ovenp
hinanden
Stte en kombineret stil for at lag
Set Map [ Window window_id ]
Layer layer_id
[ Global Line [, Line ]]
[ Global Pen [, Pen ]]
. . .
MapBasic 10.5: Kort, lag og labels
Foresprge p lag kan returnere svar om lagtilpasninger,
labeltilpasning og kombinerede stile
LayerInfo( window_id, layer_number, attribute)
LAYER_INFO_OVR_STYLE_COUNT
LAYER_INFO_OVR_LBL_COUNT
LAYER_INFO_OVR_STYLE_CURRENT
LAYER_INFO_OVR_LBL_CURRENT
LAYER_INFO_OVR_LINE_COUNT
LAYER_INFO_OVR_PEN_COUNT
LAYER_INFO_OVR_BRUSH_COUNT
LAYER_INFO_OVR_SYMBOL_COUNT
LAYER_INFO_OVR_FONT_COUNT
MapBasic 10.5: Lagkontrol
Foresprge p lagkontrollen LayerControlInfo ( attribute )
LC_INFO_SEL_COUNT
Foresprge p valgte elementer i lagkontrollen LayerControlSelectionInfo ( selection_index, attribute )
LC_SEL_INFO_NAME
LC_SEL_INFO_TYPE
LC_SEL_INFO_TYPE_MAP
LC_SEL_INFO_TYPE_LAYER
LC_SEL_INFO_TYPE_GROUPLAYER
LC_SEL_INFO_TYPE_STYLE_OVR
LC_SEL_INFO_TYPE_LABEL_OVR
LC_SEL_INFO_MAPWIN_ID
LC_SEL_INFO_LAYER_ID
LC_SEL_INFO_OVR_ID
Eksempel
Include Menu.def
'************************************************** *************************
Sub Main
'************************************************** *************************
Alter Menu ID M_SHORTCUT_LC_LAYERS Add
"Locate tab file"
HelpMsg "Finds the selected tab file in Windows Expl orer"
Calling MENULocateTabFileLC
End Sub 'Main
'************************************************** *****************************Sub MENULocateTabFileLC'************************************************** *****************************
DimnMID, nLayerID As Integer,sTab, sFile As String
If LayerControlInfo(LC_INFO_SEL_COUNT) 1 ThenNote "Please select one layer in the Layer Control! "Exit Sub
End If
If LayerControlSelectionInfo (1, LC_SEL_INFO_TYPE) < > LC_SEL_INFO_TYPE_LAYER ThenNote "Please select one layer in the Layer Control! "Exit Sub
End If
nMID = LayerControlSelectionInfo(1, LC_SEL_INFO_MAPW IN_ID)nLayerID = LayerControlSelectionInfo(1, LC_SEL_INFO_ LAYER_ID)sTab = LayerInfo(nMID, nLayerID, LAYER_INFO_NAME)
Do Case LayerInfo(nMID, nLayerID, LAYER_INFO_TYPE)
continues . . .
continued . . .
Do Case LayerInfo(nMID, nLayerID, LAYER_INFO_TYPE)Case LAYER_INFO_TYPE_NORMAL
sFile = TableInfo(sTab, TAB_INFO_TABFILE)Case LAYER_INFO_TYPE_GRID
If Ask("Do you want to find the tab file or the grid file?", "Table", "Grid") Then
sFile = TableInfo(sTab, TAB_INFO_TABFILE)Else
sFile = RasterTableInfo(sTab, RASTER_TAB_INFO_IMAGE_ NAME)End If
Case LAYER_INFO_TYPE_IMAGEIf Ask("Do you want to find the tab file or the rast er file?",
"Table", "Raster") ThensFile = TableInfo(sTab, TAB_INFO_TABFILE)
ElsesFile = RasterTableInfo(sTab, RASTER_TAB_INFO_IMAGE_ NAME)
End IfCase Else
Note "Please select a normal or raster/grid layer!"Exit Sub
End Case
Run Program "Explorer.exe /select," & sFile
End Sub 'MENULocateTabFileLC
MapBasic 10.5: TableList
Foresprge p TableList
TableListInfo( attribute )
TL_INFO_SEL_COUNT
Foresprge p valgte elementer i TableList
TableListSelectionInfo( selection_index, attribute )
TL_SEL_INFO_NAME
TL_SEL_INFO_ID
Eksempel
Include Menu.def
'************************************************** *************************
Sub Main
'************************************************** *************************
Alter Menu ID M_SHORTCUT_TLV_TABLES Add
"Locate tab file"
HelpMsg "Finds the selected tab file in Windows Expl orer"
Calling MENULocateTabFileTL
End Sub 'Main
'************************************************** ******************************Sub MENULocateTabFileTL'************************************************** ******************************
DimsTab, sFile As String
If TableListInfo(TL_INFO_SEL_COUNT) 1 ThenNote "Please select one table in the TableList windo w!"Exit Sub
End If
sTab = TableListSelectionInfo (1, TL_SEL_INFO_NAME)Do Case TableInfo(sTab, TAB_INFO_TYPE)
continues . . .
continued . . .
Do Case TableInfo(sTab, TAB_INFO_TYPE)Case TAB_TYPE_BASE, TAB_TYPE_FME, TAB_TYPE_LINKED
sFile = TableInfo(sTab, TAB_INFO_TABFILE)Case TAB_TYPE_WFS, TAB_TYPE_WMS
sFile = TableInfo(sTab, TAB_INFO_TABFILE)Case TAB_TYPE_IMAGE
If Ask(Find the tab or the raster file?", "Table", "Raster") ThensFile = TableInfo(sTab, TAB_INFO_TABFILE)
ElsesFile = RasterTableInfo(sTab, RASTER_TAB_INFO_IMAGE_ NAME)
End IfCase Else
Note "Please select a non temporal table!"Exit Sub
End Case
Run Program "Explorer.exe /select," & sFile
End Sub 'MENULocateTabFileTL
MapBasic 10.5: Menupaletter
Placering af ikke-flydende menupalette
Alter Buttonpad
{ Fixed | Float | Top | Left | Right | Bottom } ]
Create Buttonpad
{ Fixed | Float | Top | Left | Right | Bottom } ]
ButtonPadInfo( pad_name, attribute )
BTNPAD_INFO_DOCK_POSITION
BTNPAD_INFO_DOCK_NONE
BTNPAD_INFO_DOCK_LEFT
BTNPAD_INFO_DOCK_TOP
BTNPAD_INFO_DOCK_RIGHT
BTNPAD_INFO_DOCK_BOTTOM
Eksempel
Se det delte MapBasic modul T_TOOLBAR
For at gemme og genindlse en menupalettes position kan du med fordel anvende det delte MapBasic modul TOOLBARLib:
TOOLBARSetSettings(ByVal sToolbarName As String
, ByVal sToolbarSettings As String)
TOOLBARGetSettings(ByVal sToolbarName As String) As String
TOOLBARLib anvende typen T_TOOLBAR
Type T_TOOLBAR
nWID As Integer
sName As String
nState As Integer
pPosition As T_MI_POINT
nWidth As Integer
bHidden As Logical
End Type
'************************************************** *************************''''************************************************** *************************''Sub ttbGetFromToolbar(ByVal sToolbarName As String, t tbA As T_TOOLBAR)
Set Paper Units "cm"
ttbA.nWID = ButtonPadInfo(sToolbarName, BTNPAD_INFO_ WINID)ttbA.sName = sToolbarName
If ButtonPadInfo(sToolbarName, BTNPAD_INFO_FLOATING ) ThenttbA.nState = TOOLBAR_STATE_FLOATING
ElseIf SystemInfo(SYS_INFO_MIVERSION) < 1050 Then
ttbA.nState = TOOLBAR_STATE_DOCKEDElse
ttbA.nState = ButtonPadInfo(sToolbarName, BTNPAD_INFO_DOCK_POSITION)
End IfEnd If
ttbA.nWidth = ButtonPadInfo(sToolbarName, BTNPAD_INF O_WIDTH)ttbA.bHidden = NOT WindowInfo(ttbA.nWID, WIN_INFO_OP EN)ttbA.pPosition.fX = ButtonPadInfo(sToolbarName, BTNP AD_INFO_X)ttbA.pPosition.fY = ButtonPadInfo(sToolbarName, BTNP AD_INFO_Y)
End Sub
MapBasic 10.5: Tile Server understttelse
Oprette en tabel, der anvender en Tile Server
Create Table table
Type TILESERVER
TileType tile_type
URL url
AttributionText " attributiontext" [ Font font_clause]
[ StartTileNum { 0 | 1 } ]
[ Minlevel min_level ]
MaxLevels max_level
TileSize Height height [ Width width]
[ ReadTimeout read_time_out ]
[ RequestTimeout request_time_out]
CoordSys coordsys
Understtter ikke direkte WMTS, men kan gre det hvis WMTS serveren
overholder visse ting.
MapBasic 10.5: OLE Communication
Nyt object som gr det muligt at docke vinduer i MapInfo
Professional. Dog kan MapBasic dialogbokse ikke dockes
DockWindow Object
Et eksempel p anvendes ses i det opdaterede applikation Navngivne
Visninger og i WindowHelper-vrktjet
MapBasic 10.5: Mindre ting
Returnere navn p aktuel applikation ApplicationName$()
Returnere sti til en rkke filtyper defineret under grundindstillinger GetPreferencePath$()
PREFERENCE_PATH_TABLE PREFERENCE_PATH_WORKSPACE PREFERENCE_PATH_MBX PREFERENCE_PATH_IMPORT PREFERENCE_PATH_SQLQUERY PREFERENCE_PATH_THEMETHEMPLATE PREFERENCE_PATH_MIQUERY PREFERENCE_PATH_NEWGRID PREFERENCE_PATH_CRYSTAL PREFERENCE_PATH_GRAPHSUPPORT PREFERENCE_PATH_REMOTETABLE PREFERENCE_PATH_WFSTABLE
PREFERENCE_PATH_WMSTABLE
Returnere en beskrivelse af tabellen fra metadata
TableInfo( table_id, TAB_INFO_DESCRIPTION)
MapBasic 11.0: Listevindue
Foresprgse p et listevindue BrowserInfo( window_id, attribute)
BROWSER_INFO_NROWS
BROWSER_INFO_NCOLS
BROWSER_INFO_CURRENT_ROW
BROWSER_INFO_CURRENT_COLUMN
BROWSER_INFO_CURRENT_CELL_VALUE
MapBasic 11.0: Integration med MapInfo Manager
Foresprge p om eventuel integration med MapInfo Manager LibraryServiceInfo( attribute )
LIBSRVC_INFO_LIBSRVCMODE (1)
LIBSRVC_INFO_LIBVERSION (2)
LIBSRVC_INFO_DEFURLPATH (3)
LIBSRVC_INFO_LISTCSWURL (4)
Stte URL til MapInfo Manager Set LibraryServiceInfo { URL url }
Sprge om en tabel er administreret af MapInfo Manager TableInfo( table_id, attribute)
TAB_INFO_ISMANAGED (41)
MapBasic 11.0: Biblioteksstier
Lse aktuel sti til specifikke biblioteker, f.eks. mappen med tabeller GetCurrentPath$( current_path_id )
PREFERENCE_PATH_TABLE (0) PREFERENCE_PATH_WORKSPACE (1) PREFERENCE_PATH_MBX (2) PREFERENCE_PATH_IMPORT (3) PREFERENCE_PATH_SQLQUERY (4) PREFERENCE_PATH_THEMETHEMPLATE (5)
PREFERENCE_PATH_MIQUERY (6) PREFERENCE_PATH_NEWGRID (7) PREFERENCE_PATH_CRYSTAL (8) PREFERENCE_PATH_GRAPHSUPPORT (9) PREFERENCE_PATH_REMOTETABLE (10) PREFERENCE_PATH_SHAPEFILE (11)
PREFERENCE_PATH_WFSTABLE (12) PREFERENCE_PATH_WMSTABLE (13)
Stte sti til specifikke biblioteker Set Path current_path_id path
Bruger de samme konstanter som GetCurrentPath$()
MapBasic 11.0: Biblioteksstier
GetCurrentPath$() kontra GetPreferencePath$()
GetCurrentPath$ returnerer den aktuelle sti, som mske er blevet
ndret via Set Path kommandoen
GetPreferencePath$() returnerer altid stien fra
grundindstillingerne
Set Path pvirker kun stierne i den aktuelle session. Disse vil alts ikke
bliver gemt i grundindstillinger
MapBasic 11.0. Listevindue
Mulighed for at tvinge en tilpasning af kolonne-bredde til aktuelt
data-indhold: Set Browse
[ Window window_id ]
[ Grid { On | Off } ]
[ Row row_num ]
[ Column column_num ]
[ Columns Resize ]
MapBasic 11.0: Mindre ting
Kre applikation skjult (uden at den vises i MRU-oversigten Run Application [ NoMRU ] file
Forsprge p Unik ID p tabeller tildeles nr en tabel oprettes TableInfo( table_id, attribute)
TAB_INFO_TABLEID (39) TAB_INFO_PARENTTABLEID (40)
Links
Den danske PBBI blog: danmark.pbbiblogs.com
MapNetForum forum.gis-hotel.dk
MapInfo-L groups.google.com/group/mapinfo-l
MI Pro trningssvideor: www.pbinsight.com/support/training/video-tutorials
Planer for produkterne: roadmap.pbinsight.com/
MI Pro dokumentation: www.pbinsight.com/support/product-documentation/details/mapinfo-professional
Download MapBasic: www.pbinsight.com/support/product-downloads/for/mapbasic
MI Pro prveversion: www.pbinsight.com/support/product-downloads/for/mapinfo-professional
PBBI Location Intelligence Blog: li.pbbiblogs.com/
Anden dokumentation: www.pbinsight.com/support/product-documentation/
Anden download: www.pbinsight.com/support/product-downloads/
Sprgsml ?
Peter Horsbll Mller