geoserver的一点总结

由于有个项目有可能使用mysql
数据库,
而且需要gis
来配合.
以前一个电力的项目数据库使用的是sql server,gis
的数据库使用的是 postgis.

   

由于mysql
本身也支持 gis.
所以这次打算应用部分和gis
部分都采用mysql
来存储.

客户提供的原始地图是mapinfo
格式,
由于使用的gis
服务器 GeoServer
mapinfo
支持的还不够稳定和中文的问题,
所以需要把mapinfo
地图导到mysql
数据库中.
凭借以前的经验利用ogr2ogr
直接将mapinfo
地图导到postgis
,
会存在些中文问题,
需要先转换为shp
格式,
然后在利用shp2pgsql.exe
导到postgis
.

  

有关ogr2ogr ,
由于ogr2ogr
将地图导到数据库中没有做编码处理,
所以如果地图中存在中文字就会出错.
下载gdal1.5.4,
然后加入编码处理部分,打造自己的 ogr2ogr.

 

对于geoserver
来说,
利用udig
来生成样式是最合适不过的了.
但由于udig1.1.1
以前的版本,
显示mysql
的中文都是?,
而且中文字段也不能用,
查看udig
使用的库文件才发现,
它使用的geotools
的版本为

2.2.3,其mysql的jdbc drivermysql-connector-java-3.0.10.jar,可能是由于该jdbc对中文支持不大好的原因吧.本来打算将udig1.1.1的geotools替换为2.5.4版本,但总感觉有点是小小的顽疾却要动个大手术,得不偿失。同时又想,udig1.2版本的geotools会不会升级能,抱着试试看的心理下载了udig1.2 M3,查看geotools库,已经升级到到了2.6版本。

   
利用udig1.2 M3导入mysql的gis数据,发现根本不能使用,真是失望。不知道M4版会不会遇到同样的问题呢。还是自己动手丰衣足食吧,下载udig
m3的sdk,按照文档配置好(jre采用带gdal的,要不有可能有问题),经过调试修改了几个文件后,udig1.2导入mysql数据好用了。

   
1.将gt-h2-2.6-SNAPSHOT.jar包中的mysql文件夹删除

   
2.修改net.refractions.udig.catalog.mysql库中的文件

MySqlDialect

   

加入

static


final

Param
SCHEMA

=
new

Param(
“schema”
, String.
class

,
“mysql
schema”

,
false

,
“”
);

   
3

.修改
net.refractions.udig.catalog.ui
库中的文件
TableSelectionTab

找到

public


class

FilteringContentProvider
extends

ArrayContentProvider
implements


IContentProvider

在该类中,找到

boolean

schemaMatch = filter.matcher(table.
schema
.toLowerCase()).matches();

然后做如下修改

boolean

schemaMatch =
true

;

                   

if

(table.
schema
!=
null

&& table.
schema
.length()>0)

                   
  
schemaMatch = filter.matcher(table.

schema
.toLowerCase()).matches();

 

希望M4的版本一切都好用。

 

转载自:https://blog.csdn.net/Chief007/article/details/83370802

You may also like...

退出移动版