From: Mathieu Baudier Date: Thu, 6 May 2010 15:39:43 +0000 (+0000) Subject: Introduce SLC GIS support X-Git-Tag: argeo-slc-2.1.7~1309 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;ds=sidebyside;h=774bdf8f7c685472194c99e80f17e5a04c4c20f0;p=gpl%2Fargeo-slc.git Introduce SLC GIS support git-svn-id: https://svn.argeo.org/slc/trunk@3562 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/runtime/org.argeo.slc.support.gis/.classpath b/runtime/org.argeo.slc.support.gis/.classpath new file mode 100644 index 000000000..dff8aa650 --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/runtime/org.argeo.slc.support.gis/.project b/runtime/org.argeo.slc.support.gis/.project new file mode 100644 index 000000000..5acae6a58 --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/.project @@ -0,0 +1,28 @@ + + + org.argeo.slc.support.gis + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.jdt.core.prefs b/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..4e4b533ef --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Thu May 06 12:24:28 CEST 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.pde.core.prefs b/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 000000000..612d94763 --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,4 @@ +#Thu May 06 11:09:21 CEST 2010 +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/runtime/org.argeo.slc.support.gis/build.properties b/runtime/org.argeo.slc.support.gis/build.properties new file mode 100644 index 000000000..a4e488caf --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/build.properties @@ -0,0 +1,12 @@ +source.. = src/main/java/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . +additional.bundles = com.springsource.slf4j.api,\ + com.springsource.slf4j.log4j,\ + com.springsource.org.apache.log4j,\ + com.springsource.org.hsqldb,\ + org.argeo.dep.osgi.jsr275,\ + org.argeo.dep.osgi.java3d,\ + org.argeo.dep.osgi.jts,\ + com.springsource.org.apache.commons.beanutils diff --git a/runtime/org.argeo.slc.support.gis/pom.xml b/runtime/org.argeo.slc.support.gis/pom.xml new file mode 100644 index 000000000..efa20eafc --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/pom.xml @@ -0,0 +1,103 @@ + + 4.0.0 + + org.argeo.slc + runtime + 0.12.2-SNAPSHOT + .. + + org.argeo.slc.runtime + org.argeo.slc.support.gis + SLC Support GIS + + + + org.apache.felix + maven-bundle-plugin + ${version.maven-bundle-plugin} + + + + org.argeo.slc.* + + *, + org.opengis.feature.simple, + + + + + + + + + org.slf4j + com.springsource.slf4j.org.apache.commons.logging + + + + org.argeo.dep.osgi + org.argeo.dep.osgi.jts + + + org.argeo.dep.osgi + org.argeo.dep.osgi.postgis.jdbc + + + org.argeo.dep.osgi + org.argeo.dep.osgi.hibernatespatial + + + + org.argeo.dep.osgi + org.argeo.dep.osgi.geotools + + + org.jdom + com.springsource.org.jdom + + + org.jaxen + com.springsource.org.jaxen + + + org.argeo.dep.osgi + org.argeo.dep.osgi.jsr275 + + + org.argeo.dep.osgi + org.argeo.dep.osgi.java3d + + + org.argeo.dep.osgi + org.argeo.dep.osgi.geoapi + + + org.apache.commons + com.springsource.org.apache.commons.beanutils + + + + + com.springsource.repository.bundles.external + + SpringSource Enterprise Bundle Repository - External + Bundle + Releases + + + http://repository.springsource.com/maven/bundles/external + + + true + daily + fail + + + false + never + fail + + + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/Quickstart.java b/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/Quickstart.java new file mode 100644 index 000000000..25c624490 --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/Quickstart.java @@ -0,0 +1,136 @@ +/* + * GeoTools - The Open Source Java GIS Tookit + * http://geotools.org + * + * (C) 2006-2008, Open Source Geospatial Foundation (OSGeo) + * + * This file is hereby placed into the Public Domain. This means anyone is + * free to do whatever they wish with this file. Use it well and enjoy! + */ +package org.argeo.slc.geotools; + +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; +import java.io.File; +import java.util.Iterator; + +import javax.swing.SwingUtilities; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.geotools.data.FeatureSource; +import org.geotools.data.FileDataStore; +import org.geotools.data.FileDataStoreFactorySpi; +import org.geotools.data.FileDataStoreFinder; +import org.geotools.geometry.jts.ReferencedEnvelope; +import org.geotools.map.DefaultMapContext; +import org.geotools.map.MapContext; +import org.geotools.swing.JMapFrame; +import org.geotools.swing.JMapPane; +import org.geotools.swing.event.MapMouseAdapter; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +/** + * GeoTools Quickstart demo application. Prompts the user for a shapefile and + * displays its contents on the screen in a map frame + * + * @source $URL: + * http://svn.osgeo.org/geotools/trunk/demo/example/src/main/java/org + * /geotools/demo/Quickstart.java $ + */ +public class Quickstart { + private final static Log log = LogFactory.getLog(Quickstart.class); + + /** + * 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 { + Iterator ps = FileDataStoreFinder + .getAvailableDataStores(); + log.debug("Available datastores:"); + while (ps.hasNext()) { + log.debug(ps.next()); + } + + // display a data store file chooser dialog for shapefiles + // File file = JFileDataStoreChooser.showOpenFile("shp", null); + // if (file == null) { + // return; + // } + File dir = new File( + "/home/mbaudier/gis/projects/100122-EasternBalkans2010/data"); + + FeatureSource featureSource = FileDataStoreFinder + .getDataStore(new File(dir, "countries-EuroMed-NEarth.shp")) + .getFeatureSource(); + + // Create a map context and add our shapefile to it + MapContext map = new DefaultMapContext(); + map.setTitle("Quickstart"); + + // Now display the map + // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + + final JMapFrame frame = new JMapFrame(map); + frame.enableStatusBar(true); + frame.enableToolBar(true); + frame.enableLayerTable(true); + frame.initComponents(); + + frame.setSize(800, 600); + + final double clickToZoom = 0.1; // 1 wheel click is 10% zoom + final JMapPane mapPane = frame.getMapPane(); + mapPane.addMouseWheelListener(new MouseWheelListener() { + + public void mouseWheelMoved(MouseWheelEvent ev) { + int clicks = ev.getWheelRotation(); + // -ve means wheel moved up, +ve means down + int sign = (clicks < 0 ? -1 : 1); + + ReferencedEnvelope env = mapPane.getDisplayArea(); + double width = env.getWidth(); + double delta = width * clickToZoom * sign; + + env.expandBy(delta); + mapPane.setDisplayArea(env); + mapPane.repaint(); + } + }); + // mapPane.addMouseListener(new MapMouseAdapter() { + // // wheel event handler + // public void handleMouseWheelEvent(MouseWheelEvent ev) { + // int clicks = ev.getWheelRotation(); + // // -ve means wheel moved up, +ve means down + // int sign = (clicks < 0 ? -1 : 1); + // + // ReferencedEnvelope env = mapPane.getDisplayArea(); + // double width = env.getWidth(); + // double delta = width * clickToZoom * sign; + // + // env.expandBy(delta); + // mapPane.setDisplayArea(env); + // mapPane.repaint(); + // } + // }); + + SwingUtilities.invokeLater(new Runnable() { + public void run() { + frame.setVisible(true); + } + }); + + map.addLayer(FileDataStoreFinder.getDataStore( + new File(dir, "cities-EuroMed-NEarth.shp")).getFeatureSource(), + null); + map.addLayer(FileDataStoreFinder.getDataStore( + new File(dir, "countries-EuroMed-NEarth.shp")) + .getFeatureSource(), null); + map.addLayer(FileDataStoreFinder.getDataStore( + new File(dir, "highways-EastBalkan-OSM.shp")) + .getFeatureSource(), null); + + } +} \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.gis/src/test/resources/log4j.properties b/runtime/org.argeo.slc.support.gis/src/test/resources/log4j.properties new file mode 100644 index 000000000..0133bab88 --- /dev/null +++ b/runtime/org.argeo.slc.support.gis/src/test/resources/log4j.properties @@ -0,0 +1,22 @@ +# Set root logger level to DEBUG and its only appender to A1. +log4j.rootLogger=WARN, console + +## Levels +# Slc +log4j.logger.org.argeo=DEBUG + +# Castor +log4j.logger.org.exolab.castor=WARN + +# Spring +log4j.logger.org.springframework=WARN + + +## Appenders +# A1 is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n +