欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
GeoTools
GeoTools is an open source java GIS toolkit.
GeoTools is an open source (LGPL) Java code library which provides standards compliant methods for the manipulation of geospatial data, for example to implement Geographic Information Systems (GIS). The GeoTools library implements Open Geospatial Consortium (OGC) specifications as they are developed, in close collaboration with the GeoAPI and GeoWidgets projects. Includes two great SLD based renderers, raster access and reprojection. Plugns fo Shapefile, ArcGrid, ArcSDE, Postgis, OracleSpatial, MySQL and many more.
GeoTools2 is developed using the same modular structure as Netbeans and we plan to integrate GeoTools into Netbeans.
uDig is also GeoTools application.
There are two system architecture patterns in use:
- layers for data abstraction
- plugins for extendability
目录 |
Install
获得源码 http://download.huihoo.com/geotools/ unzip gt2-2.3.5-src.zip cd gt2-2.3.5 mvn install mvn archetype:create -DgroupId=org.geotools.demo.example -DartifactId=geotools-example creating a geotools-example directory cd geotools-example mvn eclipse:eclipse mvn exec:java -Dexec.mainClass="org.geotools.demo.example.App"
2.3.5可能出现的错误: // 换成 2.4.0 再做测试, 也出现同样错误
constituent[0]: file:/usr/local/maven-2.0.7/lib/maven-core-2.0.7-uber.jar --------------------------------------------------- java.lang.NullPointerException at org.apache.maven.usability.MojoExecutionExceptionDiagnoser.diagnose (MojoExecutionExceptionDiagnoser.java:64) mvn compile
Maven
m2 directory
Linux: ~/.m2 Windows: C:\Documents and Settings\USER\.m2
settings.xml
<settings> <mirrors> <mirror> <id>mirror.repo</id> <name>mirror of Ibiblio/</name> <url>/home/allen/m2/repository</url> <mirrorOf>ibiblio</mirrorOf> </mirror> </mirrors>
</settings>
Getting Started
get gt2-2.3.5-bin.zip unzip gt2-2.3.5-bin.zip cd gt2-2.3.5 mvn archetype:create -DgroupId=org.geotools.demo.example -DartifactId=geotools-example creating a geotools-example directory cd geotools-example mvn eclipse:eclipse mvn exec:java -Dexec.mainClass="org.geotools.demo.example.App" mvn compile
more details: http://docs.codehaus.org/display/GEOTDOC/03+First+Project
Database
PostGIS
JDBC DataStore
map = new HashMap(); map.put("dataSource", source); map.put("dbType", "postgis"); DataStore store = DataStoreFinder.getDataStore(map);
connect PostGIS
java.util.Map params = new java.util.HashMap(); params.put(PostgisDataStoreFactory.DBTYPE.key, "postgis"); params.put(PostgisDataStoreFactory.HOST.key, "localhost"); params.put(PostgisDataStoreFactory.PORT.key, 5432); params.put(PostgisDataStoreFactory.SCHEMA.key, "public"); params.put(PostgisDataStoreFactory.DATABASE.key, "database"); params.put(PostgisDataStoreFactory.USER.key, "postgres"); params.put(PostgisDataStoreFactory.PASSWD.key, "postgres"); DataStore dataStore=DataStoreFinder.getDataStore(params); String typeName = dataStore.getTypeNames()[0]; FeatureSource featureSource = dataStore.getFeatureSource( typeName );
Database
$ createdb -U postgres spearfish $ createlang -U postgres plpgsql spearfish $ psql -U postgres -f <path/to/file/>postgis.sql -d spearfish $ psql -U postgres -f spearfish_data_pg.sql -d spearfish $ vacuumdb -z spearfish