⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 postGIS是一个能够使用postSQL数据库来管理GIS数据的小程序,充分发挥了该数据库的空间管理功能,非常有用哦
💻 JAVA
字号:
/* * Client.java * * Using PostGIS Geometry Types with EJB2 - Proof of Concept * * Copyright 2006, Geodetix S.r.l. (http://www.geodetix.it) * and individual contributors as indicated by the @authors tag. * * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 2.1 of the License. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or visit the web at * http://www.gnu.org. * */package com.geodetix.geo.client;import com.geodetix.geo.exception.ApplicationGeoLayerException;import com.geodetix.geo.interfaces.GeometryFacade;import com.geodetix.geo.interfaces.GeometryFacadeHome;import com.geodetix.geo.util.GeometryFacadeUtil;import com.geodetix.geo.value.GeometryValue;import java.rmi.RemoteException;import javax.naming.InitialContext;import javax.naming.Context;import javax.naming.NamingException;import javax.rmi.PortableRemoteObject;import java.util.*;import org.postgis.*;/** * A client executing a simple Test Case and illustrating the Geometry Bean Usage. *  * @author  <a href="mailto:antonio.pace@geodetix.it">Antonio Pace</a> */public class Client {            private GeometryFacade geometryFacade;        private Point p1;    private Point p2;    private LineString fromP1toP2;    private Polygon searchPolygon;            /**     * Initializer method.     *     * @param geometryFacade the geometry facade object used to interact     * with the EJBs     */    public Client(GeometryFacade geometryFacade) {                this.geometryFacade=geometryFacade;                this.init();    }        private void init(){                // Create geometry stuff                // City Stadium         this.p1= new Point(16.23034006,39.31054320);                // City Train Station        this.p2= new Point(16.26002601,39.31920668);                this.fromP1toP2= new LineString(new Point[] {p1,p2});                        // Create search polygon          Point[] points = new Point[]{                        new Point(16.16399297, 39.40109388),            new Point(16.32368776, 39.39596998),            new Point(16.32397242, 39.25335486),            new Point(16.16399297, 39.25534748),            new Point(16.16399297, 39.40109388),        };                LinearRing[] linearRings   = { new LinearRing(points) };               // City Area Extension        this.searchPolygon = new Polygon(linearRings);    }                private void executeNonOpenGisTest() throws ApplicationGeoLayerException, RemoteException {                System.out.println("Execute some Tests on NON-OpenGIS Geometry EJBs");                geometryFacade.createGeometryTable();                System.out.println("create some geometry stuff...");                this.showGeometry(p1);        GeometryValue gv1 = geometryFacade.createGeometry(p1,"[ City Stadium ]");                this.showGeometry(p2);        GeometryValue gv2 = geometryFacade.createGeometry(p2,"[ City Train Station ]");                this.showGeometry(fromP1toP2);        GeometryValue gv3 = geometryFacade.createGeometry(fromP1toP2,"Line from "                                                                     + gv1.getDescription()                                                                     + " to "                                                                      + gv2.getDescription());                System.out.println("Searching created geometries in City Area Perimeter: ");        this.showGeometry(searchPolygon);                Collection<GeometryValue>  findResults = (Collection<GeometryValue>) geometryFacade.findByPolygon(searchPolygon);                System.out.println("Search Results:");                for (GeometryValue geometry  : findResults ) {                        this.showGeometry(geometry);        }                geometryFacade.dropGeometryTable();    }                        private void executeOpenGisTest() throws ApplicationGeoLayerException, RemoteException {                System.out.println("Execute some Tests on OpenGIS Geometry EJBs");                geometryFacade.createGeometryTable("POINT",4326,2);                System.out.println("Create some Points ....");                // Setting SRID        this.p1.setSrid(4326);        this.p2.setSrid(4326);        this.searchPolygon.setSrid(4326);                this.showGeometry(p1);        GeometryValue gv1 = geometryFacade.createGeometry(p1,"[ City Stadium ]");                this.showGeometry(p2);        GeometryValue gv2 = geometryFacade.createGeometry(p2,"[ City Train Station ]");                System.out.println();        System.out.println("Searching created Points in City Area Perimeter: ");        this.showGeometry(searchPolygon);                // Note the use of geometricFacade finder method        Collection<GeometryValue>  findResults = (Collection<GeometryValue>) geometryFacade.findByPolygon(searchPolygon);                System.out.println("Search Results:");                for (GeometryValue geometry  : findResults ) {                        this.showGeometry(geometry);        }                geometryFacade.dropGeometryTable();    }                private void showGeometry(Geometry geometry) {                System.out.println("Geometry: "+geometry.getTypeString()+geometry.getValue() + " SRID: "+geometry.getSrid());    }            private void showGeometry(GeometryValue geometryValue) {                System.out.println("EJB Id: "+geometryValue.getId());        System.out.println("Description: "+geometryValue.getDescription());                this.showGeometry(geometryValue.getGeometry());    }            /**     * Main client method.     *     * @param args arguments from the command line     */    public static void main(String [] args) {                try {                        GeometryFacadeHome geometryFacadeHome= GeometryFacadeUtil.getHome();                        GeometryFacade geometryFacade= geometryFacadeHome.create();                        Client client = new Client(geometryFacade);                        System.out.println("===============================");            System.out.println("== TEST 1 =====================");            System.out.println("===============================");            client.executeNonOpenGisTest();                        System.out.println("===============================");            System.out.println("== TEST 2 =====================");            System.out.println("===============================");            client.executeOpenGisTest();                        System.out.println("===============================");            System.out.println("DONE.");                    } catch (ApplicationGeoLayerException ae) {            ae.printStackTrace();        } catch (java.rmi.RemoteException re) {            re.printStackTrace();        } catch (javax.naming.NamingException ne) {            ne.printStackTrace();        } catch (javax.ejb.CreateException ce) {            ce.printStackTrace();        }            }                private static Context getInitialContext()    throws javax.naming.NamingException {                return new javax.naming.InitialContext();    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -