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

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

?? pljtsparser.java

?? Postgis是Postgres的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一区二区三区免费野_久草精品视频
亚洲va欧美va国产va天堂影院| 久88久久88久久久| 欧美一区二区播放| 欧美又粗又大又爽| 91免费看视频| 91麻豆成人久久精品二区三区| 国产不卡视频在线播放| 国产在线一区观看| 国产乱码一区二区三区| 成人av影院在线| 国产精品99久久久久久久女警| 久久国产剧场电影| 亚洲视频图片小说| 欧美三级欧美一级| 日韩精品久久理论片| 亚洲综合自拍偷拍| 亚洲一级二级在线| 日精品一区二区| 日韩精品一二三四| 激情图片小说一区| 国产精品1区二区.| av成人老司机| 欧美色精品在线视频| 制服丝袜亚洲网站| 精品电影一区二区三区| 国产精品免费网站在线观看| 国产精品久久免费看| 亚洲啪啪综合av一区二区三区| 一区二区成人在线| 日本在线不卡视频一二三区| 国内精品视频666| 69堂精品视频| 国内精品不卡在线| 日韩毛片高清在线播放| 一区二区三区在线播| 偷窥国产亚洲免费视频| 91视频.com| 91麻豆精品国产91久久久资源速度 | 激情综合一区二区三区| 豆国产96在线|亚洲| 在线欧美日韩国产| 久久综合色综合88| 有坂深雪av一区二区精品| 日韩高清不卡一区| 91在线小视频| 日韩一级大片在线| 中文字幕欧美一| 蜜臀91精品一区二区三区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品乱码妇女bbbb| 一区二区三区四区av| 韩国视频一区二区| 欧美三级欧美一级| 国产精品精品国产色婷婷| 亚洲一区二区三区免费视频| 国产一区二区三区不卡在线观看| 99re这里只有精品首页| 日韩欧美国产一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 蜜臀国产一区二区三区在线播放 | 国产偷国产偷亚洲高清人白洁| 精品影院一区二区久久久| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美午夜一区二区三区免费大片| 久久久蜜桃精品| 日本系列欧美系列| 欧美天堂一区二区三区| 亚洲视频你懂的| 成人黄色777网| 国产欧美日韩另类一区| 精品亚洲欧美一区| 欧美成人精品福利| 亚洲第一激情av| 欧美私人免费视频| 久久国产精品色婷婷| 亚洲最大色网站| 免费成人深夜小野草| 国产综合色视频| 日韩三级中文字幕| 三级影片在线观看欧美日韩一区二区| av福利精品导航| 日本一区二区三区久久久久久久久不| 色综合久久88色综合天天| 中文字幕av资源一区| 国产精品一区一区三区| 久久久久久久久97黄色工厂| 精品在线一区二区三区| 2020日本不卡一区二区视频| 卡一卡二国产精品| 日韩精品一区二区三区四区视频 | 一本到三区不卡视频| 亚洲欧美日韩一区| 欧美最猛性xxxxx直播| 日韩精品高清不卡| 国产尤物一区二区在线| 在线观看网站黄不卡| 亚洲一区在线视频观看| 欧美猛男男办公室激情| 久久狠狠亚洲综合| 欧美激情综合在线| 91丨九色丨蝌蚪富婆spa| 亚洲综合久久久| 欧美一级免费大片| 国产精品18久久久久久久久久久久| 国产亚洲精品超碰| 色噜噜狠狠色综合中国| 无吗不卡中文字幕| 久久亚区不卡日本| 色哟哟国产精品| 日本不卡的三区四区五区| 精品福利二区三区| 91视频国产资源| 日韩vs国产vs欧美| 国产精品天天看| 欧美三级蜜桃2在线观看| 国产专区欧美精品| 一区二区三区av电影| 精品欧美黑人一区二区三区| 成人性色生活片| 国产成人av电影| 亚洲一区二区三区爽爽爽爽爽| 欧美xxxxxxxx| 一本久久a久久免费精品不卡| 免费观看30秒视频久久| 国产精品不卡一区二区三区| 在线播放91灌醉迷j高跟美女| 国产黄人亚洲片| 日韩国产高清在线| 亚洲视频一区二区在线观看| 欧美一级生活片| 日本丶国产丶欧美色综合| 国产一区亚洲一区| 日本伊人色综合网| 一区二区三区小说| 欧美国产一区在线| 精品毛片乱码1区2区3区| 91黄色激情网站| 不卡的电影网站| 国产在线精品一区二区夜色| 亚洲美女少妇撒尿| 欧美不卡一区二区三区四区| 韩日av一区二区| 国产精品久久久久久久久晋中 | 欧美一级欧美三级| 成人av在线网| 国产美女在线观看一区| 日本免费新一区视频| 亚洲一区二区三区在线| 中文字幕日韩一区| 国产亚洲欧美色| 精品国产伦一区二区三区免费| 欧美精品自拍偷拍| 欧美日韩精品一区二区在线播放| 99久久精品99国产精品| 成人精品鲁一区一区二区| 激情丁香综合五月| 国产精品久久久久久妇女6080| 中文字幕在线不卡国产视频| 岛国精品一区二区| 国产精品亚洲午夜一区二区三区| 日本欧美加勒比视频| 国产成人综合网| 久草在线在线精品观看| 久久99精品国产麻豆婷婷| 日本不卡123| 日韩精品1区2区3区| 日韩精品一区第一页| 肉色丝袜一区二区| 青青青伊人色综合久久| 免费成人深夜小野草| 精品一区二区成人精品| 久久成人综合网| 精品影院一区二区久久久| 国产一区二区三区日韩| 国产成人亚洲综合色影视| 高清shemale亚洲人妖| 国产白丝精品91爽爽久久| 北条麻妃国产九九精品视频| 99久久99久久精品免费看蜜桃| 91免费国产在线观看| 欧美日韩免费观看一区三区| 538在线一区二区精品国产| 欧美成人性战久久| 国产农村妇女精品| 亚洲激情av在线| 免费一区二区视频| 国产超碰在线一区| 欧美综合天天夜夜久久| 欧美日韩一区二区三区四区| 精品理论电影在线观看| 国产精品初高中害羞小美女文| 亚洲一二三四区| 韩国毛片一区二区三区| 91丨porny丨国产入口| 51久久夜色精品国产麻豆| 国产清纯白嫩初高生在线观看91| 亚洲欧美激情小说另类| 美女免费视频一区二区| www.欧美日韩国产在线| 欧美另类久久久品|