Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

Geotools使用-1


一、Java的安装
1、下载最新的JDK,website:http://java.sun.com/javase/downloads/index.jsp;
2、本文撰写时所用的最新JDK为jdk-7u1-windows-i586.exe;
3、点击安装,默认安装地址为:C:\Program Files\Java\jdk1.7.0\;
4、可选:Java Advanced imaging(JAI)是geotools用于支持光栅数据的,可以下载:http://download.java.net/media/jai/builds/release/;其中JDK和JRE都有用:
jai-1_1_3-lib-windows-i586-jdk.exe
jai-1_1_3-lib-windows-i586-jre.exe
5、可选:ImageIO是用于读写光栅数据文件的。geotools使用的是V1.1:http://download.java.net/media/jai-imageio/builds/。其中JDK和JRE都有用:
jai_imageio-1_1-lib-windows-i586-jdk.exe
jai_imageio-1_1-lib-windows-i586-jre.exe
二、NetBeans的安装
NetBeans IDE是当前主用的Java开发软件之一,其可以较好的支持Maven;
1、下载NetBeans(就下Java SE就够了),website:http://www.netbeans.org/
2、本文撰写时所安装的为Netbeans-7.0.1-ml-javase-windows.exe;
3、点击安装过程中会使用到上述Java JDk的安装地址;
三、快速开始
geotools团队使用构造工具是融合于NetBeans中的Maven;
使用Maven的优势是:
1、你可以根据开发需要,下载需要的Geotools;
2、Jars包都下载在你本地目录(.m2/repository是隐藏的)的一个地址;
3、源码和javadoc都是自动下载并连接的。
虽然构造工具Maven也是通过描述项目内容来工作的,但是与Make、Ant工具不同。
其对项目的描述包括所需的Jars(依赖)以及一个来自可以下载到该包的网络地址的反馈。这样,我们就可以用这些工具将所需的geotools包引入到我们的项目中。
四、创建工程
下面开始:
1、点击File->New Project ,打开一个New Project视图;
2、打开Maven目录,选择Maven project,->Next;
3、在Maven Archetype页选择Maven Quickstart Archetype->next;
4、填写Name和Location;
假设:Project name:tutorial
GroupId:org.geotools;
5、点击确定,一个新的项目就诞生了;
6、如果你是第一次使用Maven及NetBeans,那你将要明确下Maven及Netbeans的版本是对的。
五、给工程添加Jars
pom.xml文件是用来描述你的maven工程需求的;我们首先关注你项目所依赖的需求。
(备注:你的本地Maven仓库被geotools填充,从而使得“offlin”模式可以使用,1、打开Windows->Preferences;2、选择Maven preference 页,3、确定offline选中)
(1)Maven利用“local repository”(本地仓库)存储下载的Jars;
平台                      LOCAL REPOSITORY(本地仓库)
Windows XP:     C:\Documents and Settings\Jody\.m2\repository
Windows:
                C:\Users\Jody\.m2\repository
Linux and Mac:        ~/.m2/repository
(2)在下载Jars时,Maven会利用一些网络上的公共仓库,例如geotools发布的
1、下一步,通过给Maven的项目描述文件(projec object model)-pom.xml添加信息,使得项目成为Geotools项目。
在项目面板中,打开项目文件夹,双击打开pom.xml;
2、首先从定义要使用的Geotools版本开始
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <geotools.version>12-SNAPSHOT</geotools.version>
    </properties>
如果在编辑xml文件出现错误时,会在项目窗口中将项目定义为“Badly formed Maven project”。你可以选择“Format”快速检查,或者通过撤销再试。
3、接着我们要添加两个Geotools模块到依赖项处:gt-shapefile和gt-swing;
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-swing</artifactId>
            <version>${geotools.version}</version>
        </dependency>
    </dependencies>
4、并添加仓库,描述jars下载地址
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
    </repositories>
5、现在,你可以右键点击项目窗口的Libraries,从弹出的菜单中下载缺失的依赖包。当下载时,其会检查我们列出的仓库;
6、我们要接着添加Geotools library的其他部分。
7、下面是完整的:
<project
    xmlns=”http://maven.apache.org/POM/4.0.0″
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.geotools</groupId>
    <artifactId>tutorial</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>tutorial</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <geotools.version>12-SNAPSHOT</geotools.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-swing</artifactId>
            <version>${geotools.version}</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
    </repositories>
</project>
可以下载上述文件:http://docs.geotools.org/latest/userguide/_downloads/pom1.xml;
六、快速开始应用
现在,环境都搭建好了,下面开始一个例子:
1、创建org.geotools.tutorial.Quickstart类;
2、完成下面代码:
package org.geotools.tutorial.quickstart;

import java.io.File;

import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;

/**
 * Prompts the user for a shapefile and displays the contents on the screen in a map frame.
 * <p>
 * This is the GeoTools Quickstart application used in documentationa and tutorials. *
 */
public class Quickstart {

    /**
     * GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its
     * contents on the screen in a map frame
     */
    public static void main(String[] args) throws Exception {
        // display a data store file chooser dialog for shapefiles
        File file = JFileDataStoreChooser.showOpenFile(“shp”, null);
        if (file == null) {
            return;
        }

        FileDataStore store = FileDataStoreFinder.getDataStore(file);
        SimpleFeatureSource featureSource = store.getFeatureSource();

        // Create a map content and add our shapefile to it
        MapContent map = new MapContent();
        map.setTitle(“Quickstart”);
        
        Style style = SLD.createSimpleStyle(featureSource.getSchema());
        Layer layer = new FeatureLayer(featureSource, style);
        map.addLayer(layer);

        // Now display the map
        JMapFrame.showMap(map);
    }

}
3、构建项目,检查不报错的话就OK了。
七、运行应用
1、我们首先需要下载一些样本数据,http://www.naturalearthdata.com/会提供一些数据,我们使用50m-cultural.zip,http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/50m-cultural.zip;
将其解压;
2、运行应用,点击“打开文件”,选择一个shape样本文件;

3、应用程序会以地图模式显示该文件;


4、在本代码例子中,需要注意的是:
shape文件没有载入内存,而是根据需要一次一次通过磁盘读取的,这种方式使得可以处理比内存更大的地理数据;

我们仅使用基本的显示方式,在后续的例子中会有更多的方式



地址:http://docs.geotools.org/latest/userguide/tutorial/quickstart/netbeans.html

转载自:https://blog.csdn.net/hhxxvc/article/details/38178979