亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pljtsparser.java

?? postGIS是一個能夠使用postSQL數據庫來管理GIS數據的小程序,充分發揮了該數據庫的空間管理功能,非常有用哦
?? JAVA
字號:
/* * JtsBinaryParser.java *  * Binary Parser for JTS - relies on org.postgis V1.0.0+ package. *  * (C) 2005 Markus Schaber, markus.schaber@logix-tt.com *  * 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. *  * $Id: JtsBinaryParser.java 2407 2006-07-18 18:13:31Z mschaber $ */package org.postgis.pljava;import java.sql.SQLException;import java.sql.SQLInput;import com.vividsolutions.jts.geom.Coordinate;import com.vividsolutions.jts.geom.CoordinateSequence;import com.vividsolutions.jts.geom.Geometry;import com.vividsolutions.jts.geom.GeometryCollection;import com.vividsolutions.jts.geom.LineString;import com.vividsolutions.jts.geom.LinearRing;import com.vividsolutions.jts.geom.MultiLineString;import com.vividsolutions.jts.geom.MultiPoint;import com.vividsolutions.jts.geom.MultiPolygon;import com.vividsolutions.jts.geom.Point;import com.vividsolutions.jts.geom.Polygon;import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;/** * Parse binary representation of geometries. Currently, only text rep (hexed) * implementation is tested. *  * It should be easy to add char[] and CharSequence ByteGetter instances, * although the latter one is not compatible with older jdks. *  * I did not implement real unsigned 32-bit integers or emulate them with long, * as both java Arrays and Strings currently can have only 2^31-1 elements * (bytes), so we cannot even get or build Geometries with more than approx. * 2^28 coordinates (8 bytes each). *  * @author Markus Schaber, markus.schaber@logix-tt.com *  */public class PLJtsParser {    /** Parse a geometry      * @throws SQLException */    public Geometry parseGeometry(SQLInput data) throws SQLException {        return parseGeometry(data, 0, false);    }    /** Parse with a known geometry factory      * @throws SQLException */    protected Geometry parseGeometry(SQLInput data, int srid, boolean inheritSrid) throws SQLException {        int typeword = data.readByte() & 0xFF;                int realtype = typeword & 0x0F; // cut off high flag bits        boolean haveBBox = (typeword & 0x80) != 0;        boolean haveS = (typeword & 0x40) != 0;        boolean haveZ = (typeword & 0x20) != 0;        boolean haveM = (typeword & 0x10) != 0;        if (haveBBox) {            // skip bbox, currently ignored            data.readFloat();            data.readFloat();            data.readFloat();            data.readFloat();        }                if (haveS) {            int newsrid = data.readInt();            if (inheritSrid && newsrid != srid) {                throw new IllegalArgumentException("Inconsistent srids in complex geometry: " + srid + ", " + newsrid);            } else {                srid = newsrid;            }        } else if (!inheritSrid) {            srid = -1;        }               Geometry result;        switch (realtype) {        case org.postgis.Geometry.POINT:            result = parsePoint(data, haveZ, haveM);            break;        case org.postgis.Geometry.LINESTRING:            result = parseLineString(data, haveZ, haveM);            break;        case org.postgis.Geometry.POLYGON:            result = parsePolygon(data, haveZ, haveM, srid);            break;        case org.postgis.Geometry.MULTIPOINT:            result = parseMultiPoint(data, srid);            break;        case org.postgis.Geometry.MULTILINESTRING:            result = parseMultiLineString(data, srid);            break;        case org.postgis.Geometry.MULTIPOLYGON:            result = parseMultiPolygon(data, srid);            break;        case org.postgis.Geometry.GEOMETRYCOLLECTION:            result = parseCollection(data, srid);            break;        default:            throw new IllegalArgumentException("Unknown Geometry Type!");        }                result.setSRID(srid);                return result;    }    private Point parsePoint(SQLInput data, boolean haveZ, boolean haveM) throws SQLException {        double X = data.readDouble();        double Y = data.readDouble();        Point result;        if (haveZ) {            double Z = data.readDouble();            result = PLJGeometry.geofac.createPoint(new Coordinate(X, Y, Z));        } else {            result = PLJGeometry.geofac.createPoint(new Coordinate(X, Y));        }        if (haveM) { // skip M value            data.readDouble();        }                return result;    }    /** Parse an Array of "full" Geometries      * @throws SQLException */    private void parseGeometryArray(SQLInput data, Geometry[] container, int srid) throws SQLException {        for (int i = 0; i < container.length; i++) {            container[i] = parseGeometry(data, srid, true);        }    }    /**     * Parse an Array of "slim" Points (without endianness and type, part of     * LinearRing and Linestring, but not MultiPoint!     *      * @param haveZ     * @param haveM     * @throws SQLException      */    private CoordinateSequence parseCS(SQLInput data, boolean haveZ, boolean haveM) throws SQLException {        int count = data.readInt();        int dims = haveZ ? 3 : 2;        CoordinateSequence cs = new PackedCoordinateSequence.Double(count, dims);        for (int i = 0; i < count; i++) {            for (int d = 0; d < dims; d++) {                cs.setOrdinate(i, d, data.readDouble());            }            if (haveM) { // skip M value                data.readDouble();            }        }        return cs;    }    private MultiPoint parseMultiPoint(SQLInput data, int srid) throws SQLException {        Point[] points = new Point[data.readInt()];        parseGeometryArray(data, points, srid);        return PLJGeometry.geofac.createMultiPoint(points);    }    private LineString parseLineString(SQLInput data, boolean haveZ, boolean haveM) throws SQLException {        return PLJGeometry.geofac.createLineString(parseCS(data, haveZ, haveM));    }    private LinearRing parseLinearRing(SQLInput data, boolean haveZ, boolean haveM) throws SQLException {        return PLJGeometry.geofac.createLinearRing(parseCS(data, haveZ, haveM));    }    private Polygon parsePolygon(SQLInput data, boolean haveZ, boolean haveM, int srid) throws SQLException {        int holecount = data.readInt() - 1;        LinearRing[] rings = new LinearRing[holecount];        LinearRing shell = parseLinearRing(data, haveZ, haveM);        shell.setSRID(srid);        for (int i = 0; i < holecount; i++) {            rings[i] = parseLinearRing(data, haveZ, haveM);            rings[i].setSRID(srid);        }        return PLJGeometry.geofac.createPolygon(shell, rings);    }    private MultiLineString parseMultiLineString(SQLInput data, int srid) throws SQLException {        int count = data.readInt();        LineString[] strings = new LineString[count];        parseGeometryArray(data, strings, srid);        return PLJGeometry.geofac.createMultiLineString(strings);    }    private MultiPolygon parseMultiPolygon(SQLInput data, int srid) throws SQLException {        int count = data.readInt();        Polygon[] polys = new Polygon[count];        parseGeometryArray(data, polys, srid);        return PLJGeometry.geofac.createMultiPolygon(polys);    }    private GeometryCollection parseCollection(SQLInput data, int srid) throws SQLException {        int count = data.readInt();        Geometry[] geoms = new Geometry[count];        parseGeometryArray(data, geoms, srid);        return PLJGeometry.geofac.createGeometryCollection(geoms);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜电影在线播放| 亚洲色图在线视频| 中文欧美字幕免费| 日韩精品亚洲专区| 91在线观看一区二区| 精品电影一区二区| 亚洲bt欧美bt精品| 一本久久精品一区二区| 亚洲精品国久久99热| 中文字幕一区二| 国产成人精品免费| 精品日韩一区二区三区| 日韩成人午夜精品| 欧美日韩免费在线视频| 亚洲在线成人精品| 99re热这里只有精品免费视频| 日韩视频一区在线观看| 午夜精品久久一牛影视| 欧美日韩国产美| 亚洲午夜久久久久久久久电影网| av不卡一区二区三区| 欧美国产日本视频| 国产高清精品久久久久| 久久精品一区二区三区不卡 | 一区二区三区国产精品| 国产91清纯白嫩初高中在线观看| 91精品国产综合久久蜜臀| 亚洲v精品v日韩v欧美v专区| 欧美在线观看18| 一区二区三区四区在线免费观看| 91在线小视频| 一区二区三区免费看视频| 一本色道久久综合亚洲精品按摩 | 99久久婷婷国产综合精品电影| 久久久777精品电影网影网| 国产九色精品成人porny| 精品免费一区二区三区| 国产一区二区不卡在线| 国产亚洲精品7777| 国产成人在线观看| 日韩理论在线观看| 欧美三级在线看| 久久精品久久久精品美女| 精品久久免费看| 成人福利视频网站| 亚洲综合成人网| 日韩欧美国产高清| 成人午夜视频网站| 亚洲国产欧美在线人成| 制服丝袜激情欧洲亚洲| 国产真实精品久久二三区| 中文字幕欧美日本乱码一线二线| 91免费版在线| 亚洲韩国精品一区| 26uuu色噜噜精品一区二区| 国产精品一区二区无线| 日韩一区中文字幕| 欧美亚洲精品一区| 蓝色福利精品导航| 国产精品传媒在线| 91麻豆精品久久久久蜜臀| 国产呦精品一区二区三区网站| 国产欧美一区二区在线| 欧美图片一区二区三区| 国产乱码精品一区二区三区五月婷| 欧美国产一区二区在线观看| 91老师片黄在线观看| 久久99国产精品久久99果冻传媒| 国产精品久久久久久亚洲毛片| 欧美色视频一区| 99久久国产综合色|国产精品| 亚洲激情图片qvod| 欧美mv和日韩mv国产网站| 99国产精品久| 国产综合色在线| 亚洲成人一区二区| 国产精品色哟哟网站| 欧美一区二区视频网站| 成人免费看黄yyy456| 日韩精品一二三| 亚洲欧美另类久久久精品| 久久夜色精品一区| 欧美美女bb生活片| 日本韩国欧美国产| 成人中文字幕在线| 精品一区二区三区免费毛片爱| 一区二区三区四区精品在线视频| 久久日韩精品一区二区五区| 欧美精品在线观看一区二区| 91在线视频播放| www.成人在线| 国产成人在线网站| 国内精品伊人久久久久av影院| 亚洲成人av福利| 一区二区久久久久| 最新久久zyz资源站| 久久女同性恋中文字幕| 欧美xfplay| 欧美大度的电影原声| 欧美麻豆精品久久久久久| 在线精品视频免费观看| 91网址在线看| 99久久久国产精品| 国产jizzjizz一区二区| 久久99热狠狠色一区二区| 三级在线观看一区二区| 婷婷国产在线综合| 亚洲国产成人av好男人在线观看| 亚洲美女电影在线| 亚洲人成亚洲人成在线观看图片| 国产精品视频第一区| 国产清纯在线一区二区www| 久久精品视频一区二区三区| 精品成人一区二区三区| 精品国产sm最大网站| 2020国产精品| 中文字幕第一区综合| 国产精品美女视频| 亚洲免费电影在线| 亚洲欧洲日本在线| 亚洲精品一卡二卡| 亚洲一区二区av在线| 亚洲国产日韩综合久久精品| 亚洲成a人v欧美综合天堂| 日韩综合一区二区| 久色婷婷小香蕉久久| 国产xxx精品视频大全| www.在线欧美| 欧美日韩国产综合久久| 欧美成人a视频| 国产无一区二区| 亚洲日本在线天堂| 丝袜诱惑制服诱惑色一区在线观看 | 久久免费看少妇高潮| 欧美成人猛片aaaaaaa| 久久一二三国产| 亚洲乱码国产乱码精品精可以看| 亚洲图片欧美色图| 国产老肥熟一区二区三区| 波多野结衣视频一区| 欧美日韩免费不卡视频一区二区三区 | 日韩av网站免费在线| 日本成人中文字幕| 高清在线成人网| 欧洲精品中文字幕| 久久九九久精品国产免费直播| 亚洲天堂成人在线观看| 免费人成精品欧美精品| 成人亚洲一区二区一| 欧美日韩一区在线| 国产偷国产偷亚洲高清人白洁| 亚洲图片另类小说| 老司机午夜精品| 91免费版pro下载短视频| 欧美成人精品1314www| 亚洲精品写真福利| 国产一区二区三区免费播放 | 一区二区三区精品视频在线| 免费看日韩精品| 99久久精品免费看国产免费软件| 日韩视频在线一区二区| 亚洲日韩欧美一区二区在线| 精品亚洲aⅴ乱码一区二区三区| 91浏览器在线视频| 久久在线免费观看| 日韩高清一区二区| 99久久99久久精品国产片果冻| 精品国产乱码久久久久久牛牛| 一区二区三区中文在线| 成人性生交大片免费看视频在线 | 亚洲欧美一区二区在线观看| 久久激情五月激情| 欧美午夜一区二区三区| 国产精品久久久久一区二区三区 | 天天免费综合色| 成人精品国产一区二区4080| 日韩精品在线网站| 日本欧美加勒比视频| 欧美日韩久久一区二区| 亚洲精品网站在线观看| 成人免费高清在线观看| 国产亚洲精品aa午夜观看| 午夜精品久久久久久不卡8050| 99久久精品国产网站| 国产精品婷婷午夜在线观看| 黄网站免费久久| 日韩欧美一卡二卡| 另类欧美日韩国产在线| 欧美一区二区网站| 日韩福利电影在线| 欧美视频一区二区在线观看| 最新欧美精品一区二区三区| www.激情成人| 亚洲欧洲精品一区二区精品久久久 | 日韩欧美精品在线视频| 免费成人深夜小野草| 一区在线观看视频| 亚洲伦理在线精品| 国产主播一区二区| 日本一区免费视频|