访问远程空间数据
天下维客,你可以修改的网络知识库
在MapX中可以使用不同的 DBMS 服务器访问地图图层数据。
可以使用 Layers.Add 方法用来自 DBMS 的数据来添加图层。有以下两种方法:
Ÿ 当需要在运行状态下动态计算查询时,随 LayerInfo 对象一起使用 Layers.Add 方法。这适合于有新数据输入的情况。例如,现有一个应用程序,用来确定已产生用户输入税收量的商店的位置。通过该应用程序输入的税收值在程序设计阶段是未知的,因此,只能在运行状态下添加到查询中。这种方法用来取代前面的 AddServerLayer 方法。
Ÿ 当查询在设计阶段已知时,和 .tab 文件一起使用 Layers.Add 方法。例如,如果应用程序要求显示所有在役的火警消防拴,那么就可以设置查询为选择所有消防拴,同时将在役条件设置为真。这个设置在程序设计阶段完成。可以直接将 .tab 文件放到 geoset 中,只要确保当任何使用 geoset 的程序初始化时,都装载了该文件。
说明:MapX 4.0 不支持打开 SpatialWare 3.0 的或者更低版本的表。
对 LayerInfo 对象使用 Layers.Add 方法
使用LayerInfo对象访问DBMS的示例
Dim lInfo As Object Dim lStr As String Set lInfo = CreateObject("mapx.layerinfo.4") lInfo.Type = 4 ' layer type is RDB
lInfo.AddParameter "NAME", "city_125" 'layer name lInfo.AddParameter "TOOLKIT", "ODBC" ' use "ORAINET" for oracle direct access lInfo.AddParameter "CONNECTSTRING", "DRIVER={SpatialWare 32 Bit _ Driver4.00};HOST=Champagne;UUID=oracle;UPWD=secret;UID=GEORGETOWN; PWD=secret;OSID=DB1;DLG=0" lInfo.AddParameter "QUERY", "SELECT * FROM CITY_125" lInfo.AddParameter "CACHE", "ON" lInfo.AddParameter "MBRSEARCH", "ON" g_map.Layers.Add lInfo Set lInfo = Nothing
通过 .tab 文件访问远程表
可以通过创建 .tab 文件,以提供对远程地图的访问。要使用 MapInfo Professional 产生 .tab 文件,请选择文件>打开 命令打开 DBMS 表。
.tab 文件是文本文件,可以使用任何文本编辑器创建 .tab 文件。创建了 .tab 文件后,就可以在编程时通过 Layers.Add 方法或通过 Geoset Manager,像访问任何其它 MapInfo .tab 文件一样访问该文件。
示例(ODBC) 这是一个使用 ODBC 为 SpatialWare 图层建立 .tab 文件的示例。 !table !version 500 !charset WindowsLatin1
Definition Table
Type ODBC
begin_metadata "\IsReadOnly" = "FALSE" "\DATALINK" = "" "\DATALINK\Query" = "SELECT * FROM CITY_125" "\DATALINK\ConnectionString" = DRIVER={SpatialWare 32 Bit Driver4.00};HOST=Champagne;UUID=oracle;UPWD=secret;UID=GEORGETOWN; PWD=secret;OSID=DB1;DLG=0 "\DATALINK\ToolKit" = "ODBC" "\CACHE" = "OFF" "\MBRSEARCH" = "ON" end_metadata


