31
Peter Horsb Peter Horsb ø ø ll M ll M ø ø ller ller Juni Juni 2011 2011 Nyheder i MapBasic 10.5 og 11.0 MapBasic Udviklerdag 2011

Nyheder i MapBasic 10.5 og 11 - Pitney Bowesblogs.pitneybowes.dk/files/dk/MapBasic Udviklerdag/2011/02 Nyheder... · Nyheder i MapBasic 10.5 og 11.0 MapBasic Udviklerdag 2011. Program

  • Upload
    vuongtu

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

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

[email protected]