加载地图数据

来源:互联网 发布:谭浩强c语言视频讲解 编辑:程序博客网 时间:2024/05/02 00:23

加载地图数据

可以打开GeoSet( *.gst)或MapDefinition( *.mdf )文件加载地图数据。MapXtreme没有默认的地图数据,所以必须人工加载地图数据。

1,加载GeoSet

         myMap.loadGeoset(geosetName, dataDir, servletURL);

         其中:

                geosetName:geoset的完整文件名(包括路径);

                dataDir:geoset中引用的tab地图文件的位置;

                 servletURL:mapxtremeservlet的路径,如果MapJ使用LocalDataProviderRef,servletURL可以为NULL。

        示例:

             myMap.loadGeoset("c://mapxtreme//maps//world.gst",

"c://mapxtreme//maps",

"http://localhost:8080/mapxtreme40/servlet/mapxtreme";);

 

2,加载 Map Definition

       可以加载保存在文件中的地图定义(*.mdf)或者数据库中的地图定义记录(record)。首先要创建MapDefContainer,有两种情况:

《1》       地图定义在文件中:   

              MapDefContainer mdc = new FileMapDefContainer(dir)

       示例:

【一】       MapDefContainer mdc = new FileMapDefContainer("c://mapxtreme/maps")//.mdf文件所在目录       myMap.loadMapDefinition(mdc, name)//name 是mdf文件的名字【二】    String mapPath="E://workspace//BI_change//fz.mdf";//这个    myMap.loadMapDefinition(mapPath);                   《2》        地图定义在数据库中:

MapDefContainer mdc = new JDBCMapDefContainer(driver,url, user,password)

其中,driver,url,user,password都是数据库连接的参数。

下面的示例是使用Oracle Spatial MapRefContainer,地图定义保存在数据库的表中:

OraSoMapDefContainer mdc =

new OraSoMapDefContainer("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@machinename:1521:dbSid",

"username", "password", "tableName", "Name",

"Map_Definition");

tableName:存储在数据库中的mdf表名

Name:mdf表中文件名(对应于表里的一列名)

Map_Definition:mdf表中实际存储地图数据列名

 

例子:OraSoMapDefContainer mdc = 

new OraSoMapDefContainer("oracle.jdbc.driver.OracleDriver",

    "jdbc:oracle:thin:@ 219.245.117.110:1521:myoracle",

"mapinfo", "mapinfo", "clob_content", 

"file_name","clob_column");

    myMap.loadMapDefinition(mdc, "xian"); 

然后加载地图定义:

       myMap.loadMapDefinition(mapDefContainer, name) name 是 地图定义的名字,如: myMap.loadMapDefinition(mdc, "Asia");