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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? binaryparser.java

?? Postgis是Postgres的Gis空間引擎,支持空間索引和空間操作,擴(kuò)展了很多空間類型
?? JAVA
字號(hào):
/* * BinaryParser.java *  * PostGIS extension for PostgreSQL JDBC driver - Binary Parser *  * (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: BinaryParser.java 1622 2005-04-15 14:04:34Z mschaber $ */package org.postgis.binary;import org.postgis.Geometry;import org.postgis.GeometryCollection;import org.postgis.LineString;import org.postgis.LinearRing;import org.postgis.MultiLineString;import org.postgis.MultiPoint;import org.postgis.MultiPolygon;import org.postgis.Point;import org.postgis.Polygon;import org.postgis.binary.ByteGetter.BinaryByteGetter;import org.postgis.binary.ByteGetter.StringByteGetter;/** * Parse binary representation of geometries. *  * 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 BinaryParser {    /**     * Get the appropriate ValueGetter for my endianness     *      * @param bytes The appropriate Byte Getter     *      * @return the ValueGetter     */    public static ValueGetter valueGetterForEndian(ByteGetter bytes) {        if (bytes.get(0) == ValueGetter.XDR.NUMBER) { // XDR            return new ValueGetter.XDR(bytes);        } else if (bytes.get(0) == ValueGetter.NDR.NUMBER) {            return new ValueGetter.NDR(bytes);        } else {            throw new IllegalArgumentException("Unknown Endian type:" + bytes.get(0));        }    }    /**     * Parse a hex encoded geometry     *      * Is synchronized to protect offset counter. (Unfortunately, Java does not     * have neither call by reference nor multiple return values.)     */    public synchronized Geometry parse(String value) {        StringByteGetter bytes = new ByteGetter.StringByteGetter(value);        return parseGeometry(valueGetterForEndian(bytes));    }    /**     * Parse a binary encoded geometry.     *      * Is synchronized to protect offset counter. (Unfortunately, Java does not     * have neither call by reference nor multiple return values.)     */    public synchronized Geometry parse(byte[] value) {        BinaryByteGetter bytes = new ByteGetter.BinaryByteGetter(value);        return parseGeometry(valueGetterForEndian(bytes));    }    /** Parse a geometry starting at offset. */    protected Geometry parseGeometry(ValueGetter data) {        byte endian = data.getByte(); // skip and test endian flag        if (endian != data.endian) {            throw new IllegalArgumentException("Endian inconsistency!");        }        int typeword = data.getInt();        int realtype = typeword & 0x1FFFFFFF; // cut off high flag bits        boolean haveZ = (typeword & 0x80000000) != 0;        boolean haveM = (typeword & 0x40000000) != 0;        boolean haveS = (typeword & 0x20000000) != 0;        int srid = -1;        if (haveS) {            srid = data.getInt();        }        Geometry result1;        switch (realtype) {        case Geometry.POINT :            result1 = parsePoint(data, haveZ, haveM);            break;        case Geometry.LINESTRING :            result1 = parseLineString(data, haveZ, haveM);            break;        case Geometry.POLYGON :            result1 = parsePolygon(data, haveZ, haveM);            break;        case Geometry.MULTIPOINT :            result1 = parseMultiPoint(data);            break;        case Geometry.MULTILINESTRING :            result1 = parseMultiLineString(data);            break;        case Geometry.MULTIPOLYGON :            result1 = parseMultiPolygon(data);            break;        case Geometry.GEOMETRYCOLLECTION :            result1 = parseCollection(data);            break;        default :            throw new IllegalArgumentException("Unknown Geometry Type: " + realtype);        }        Geometry result = result1;        if (haveS) {            result.setSrid(srid);        }        return result;    }    private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) {        double X = data.getDouble();        double Y = data.getDouble();        Point result;        if (haveZ) {            double Z = data.getDouble();            result = new Point(X, Y, Z);        } else {            result = new Point(X, Y);        }        if (haveM) {            result.setM(data.getDouble());        }        return result;    }    /** Parse an Array of "full" Geometries */    private void parseGeometryArray(ValueGetter data, Geometry[] container) {        for (int i = 0; i < container.length; i++) {            container[i] = parseGeometry(data);        }    }    /**     * Parse an Array of "slim" Points (without endianness and type, part of     * LinearRing and Linestring, but not MultiPoint!     *      * @param haveZ     * @param haveM     */    private Point[] parsePointArray(ValueGetter data, boolean haveZ, boolean haveM) {        int count = data.getInt();        Point[] result = new Point[count];        for (int i = 0; i < count; i++) {            result[i] = parsePoint(data, haveZ, haveM);        }        return result;    }    private MultiPoint parseMultiPoint(ValueGetter data) {        Point[] points = new Point[data.getInt()];        parseGeometryArray(data, points);        return new MultiPoint(points);    }    private LineString parseLineString(ValueGetter data, boolean haveZ, boolean haveM) {        Point[] points = parsePointArray(data, haveZ, haveM);        return new LineString(points);    }    private LinearRing parseLinearRing(ValueGetter data, boolean haveZ, boolean haveM) {        Point[] points = parsePointArray(data, haveZ, haveM);        return new LinearRing(points);    }    private Polygon parsePolygon(ValueGetter data, boolean haveZ, boolean haveM) {        int count = data.getInt();        LinearRing[] rings = new LinearRing[count];        for (int i = 0; i < count; i++) {            rings[i] = parseLinearRing(data, haveZ, haveM);        }        return new Polygon(rings);    }    private MultiLineString parseMultiLineString(ValueGetter data) {        int count = data.getInt();        LineString[] strings = new LineString[count];        parseGeometryArray(data, strings);        return new MultiLineString(strings);    }    private MultiPolygon parseMultiPolygon(ValueGetter data) {        int count = data.getInt();        Polygon[] polys = new Polygon[count];        parseGeometryArray(data, polys);        return new MultiPolygon(polys);    }    private GeometryCollection parseCollection(ValueGetter data) {        int count = data.getInt();        Geometry[] geoms = new Geometry[count];        parseGeometryArray(data, geoms);        return new GeometryCollection(geoms);    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色精品天天在线观看视频| 久久精品在线观看| 在线观看亚洲a| 99久久综合国产精品| 国产成人精品1024| 大美女一区二区三区| 成人综合婷婷国产精品久久蜜臀| 国产成人午夜电影网| 成人晚上爱看视频| 99视频在线精品| 在线观看一区不卡| 欧美日韩国产成人在线免费| 欧美精品一二三| 日韩一区二区精品葵司在线| 欧美va在线播放| 久久婷婷久久一区二区三区| 国产日产欧产精品推荐色 | 亚洲五月六月丁香激情| 伊人一区二区三区| 香蕉久久一区二区不卡无毒影院| 日韩av电影免费观看高清完整版| 肉丝袜脚交视频一区二区| 美女在线一区二区| 国产99精品国产| 色综合久久中文综合久久97| 欧美三级午夜理伦三级中视频| 欧美一区二区视频网站| 久久麻豆一区二区| 亚洲欧美日韩系列| 石原莉奈在线亚洲三区| 国产麻豆成人传媒免费观看| 成人动漫一区二区三区| 日韩精品一区二区三区中文不卡| 久久精品免视看| 亚洲欧美激情小说另类| 日韩成人一级片| 国产精品1区2区3区| 色婷婷精品久久二区二区蜜臂av | 亚洲成年人影院| 久久99国产精品免费网站| 成人激情视频网站| 欧美精品第1页| 国产亚洲成年网址在线观看| 一区二区三区在线免费观看| 美女免费视频一区| 99re成人在线| 日韩三级免费观看| 亚洲欧洲日产国产综合网| 日韩精品91亚洲二区在线观看| 国产福利一区二区三区在线视频| 欧美亚洲一区二区在线观看| 久久午夜电影网| 午夜亚洲国产au精品一区二区| 国产美女在线精品| 欧美三级资源在线| 欧美国产精品v| 日韩激情视频网站| 91亚洲精华国产精华精华液| 欧美电视剧在线观看完整版| 亚洲你懂的在线视频| 国产原创一区二区三区| 欧美又粗又大又爽| 欧美国产激情一区二区三区蜜月| 丝袜亚洲另类欧美综合| 97se亚洲国产综合自在线观| 精品国产一区二区三区久久久蜜月 | 日韩欧美美女一区二区三区| 中文字幕亚洲在| 韩国三级中文字幕hd久久精品| 在线视频欧美精品| 中文av一区特黄| 免费久久99精品国产| 欧洲精品在线观看| 中文字幕制服丝袜一区二区三区| 久久av老司机精品网站导航| 欧美日韩一区三区四区| 亚洲视频一区二区免费在线观看| 国产乱人伦偷精品视频不卡| 日韩三级.com| 午夜视黄欧洲亚洲| 91蝌蚪porny成人天涯| 欧美国产一区二区| 美女精品一区二区| 欧美精品一级二级三级| 亚洲综合视频在线| 色狠狠一区二区三区香蕉| 国产精品免费免费| 风间由美一区二区av101| 26uuu精品一区二区| 九九视频精品免费| 欧美电视剧在线看免费| 麻豆精品国产91久久久久久| 欧美精品三级在线观看| 亚洲第一主播视频| 欧美日韩免费在线视频| 亚洲一区二区三区免费视频| 欧日韩精品视频| 亚洲综合久久av| 欧美在线观看一二区| 一区二区三区在线视频播放 | 日韩午夜激情视频| 蜜臀av一区二区在线观看 | 亚洲已满18点击进入久久| 99久久精品国产网站| **性色生活片久久毛片| 91同城在线观看| 亚洲精品综合在线| 欧美亚洲动漫另类| 亚洲成人av在线电影| 欧美精选午夜久久久乱码6080| 五月天一区二区| 日韩一区和二区| 精品一区二区三区免费视频| 精品日产卡一卡二卡麻豆| 国产一区二三区好的| 国产丝袜美腿一区二区三区| 成人黄色一级视频| 亚洲三级小视频| 欧美日韩中文国产| 麻豆精品在线观看| 日本一区二区三区电影| 99久久精品免费看国产免费软件| 亚洲欧美日韩一区二区 | 久久亚洲私人国产精品va媚药| 国产美女一区二区| 中文字幕一区二区三区色视频| 91视频在线看| 日韩高清电影一区| 久久综合色一综合色88| 99久久夜色精品国产网站| 亚洲午夜私人影院| 日韩精品一区二区三区四区视频| 国产精品一区二区久久不卡| 亚洲免费观看视频| 日韩一区二区视频| 成人综合在线观看| 性久久久久久久久久久久| 欧美精品一区二区三区一线天视频| 成人在线综合网站| 亚洲图片有声小说| 久久综合五月天婷婷伊人| 91老司机福利 在线| 日本不卡一区二区| 国产精品美女一区二区三区 | 国产欧美日韩一区二区三区在线观看| 99国产精品久| 美女网站一区二区| 亚洲美女视频在线观看| 欧美一区二区三区思思人| 成人黄色大片在线观看| 污片在线观看一区二区| 国产精品日韩精品欧美在线| 欧美精品久久一区二区三区| 成人一区二区三区视频在线观看| 亚洲综合在线免费观看| 久久久激情视频| 欧美日韩国产影片| 成人自拍视频在线观看| 美女视频黄频大全不卡视频在线播放| 国产精品嫩草影院av蜜臀| 日韩小视频在线观看专区| 99精品桃花视频在线观看| 久久99精品网久久| 亚洲一区二区三区自拍| 国产精品久久毛片av大全日韩| 91麻豆精品国产91| 色中色一区二区| 国产成人啪午夜精品网站男同| 亚洲一区二区五区| 国产精品黄色在线观看| 久久综合久久综合亚洲| 制服视频三区第一页精品| 一本色道久久综合亚洲aⅴ蜜桃| 黑人巨大精品欧美黑白配亚洲| 精品一区二区三区影院在线午夜| 亚洲综合在线第一页| 国产精品美女久久久久久久久| 日韩精品自拍偷拍| 欧美久久一区二区| 色999日韩国产欧美一区二区| 国产成a人无v码亚洲福利| 六月丁香婷婷久久| 无码av免费一区二区三区试看 | 中文字幕国产一区二区| 日韩一级免费一区| 欧美日韩国产电影| 色综合天天狠狠| 成人sese在线| 国产一区二区三区免费| 麻豆精品精品国产自在97香蕉| 香蕉久久夜色精品国产使用方法| 亚洲视频一二三| 中文字幕日韩一区| 国产精品免费视频网站| 国产日韩精品一区二区浪潮av| 欧美精品一区二区高清在线观看| 日韩欧美一卡二卡| 日韩欧美国产一区二区三区| 91精品婷婷国产综合久久性色 | 久久久一区二区三区|