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

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

?? composedgeom.java

?? Postgis是Postgres的Gis空間引擎,支持空間索引和空間操作,擴展了很多空間類型
?? JAVA
字號:
/* * ComposedGeom.java *  * PostGIS extension for PostgreSQL JDBC driver - geometry model *  * (C) 2004 Paul Ramsey, pramsey@refractions.net *  * (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: ComposedGeom.java 2523 2006-11-02 09:03:30Z mschaber $ */package org.postgis;import org.postgresql.util.PGtokenizer;import java.sql.SQLException;import java.util.Iterator;/** * ComposedGeom - Abstract base class for all Geometries that are composed out * of other Geometries. *  * In fact, this currently are all Geometry subclasses except Point. *  * @author markus.schaber@logix-tt.com *  *  */public abstract class ComposedGeom extends Geometry {    /* JDK 1.5 Serialization */    private static final long serialVersionUID = 0x100;    public static final Geometry[] EMPTY = new Geometry[0];    /**     * The Array containing the geometries     *      * This is only to be exposed by concrete subclasses, to retain type safety.     */    protected Geometry[] subgeoms = EMPTY;    /**     * @param type     */    public ComposedGeom(int type) {        super(type);    }    public Geometry getSubGeometry(int index) {        return subgeoms[index];    }    public int numGeoms() {        return subgeoms.length;    }    protected ComposedGeom(int type, Geometry[] geoms) {        this(type);        this.subgeoms = geoms;        if (geoms.length > 0) {            dimension = geoms[0].dimension;            haveMeasure = geoms[0].haveMeasure;        } else {            dimension = 0;        }    }    protected ComposedGeom(int type, String value, boolean haveM) throws SQLException {        super(type);        value = initSRID(value);        String typestring = getTypeString();        if (value.indexOf(typestring) == 0) {            int pfxlen = typestring.length();            if (value.charAt(pfxlen) == 'M') {                pfxlen += 1;                haveM = true;            }            value = value.substring(pfxlen).trim();        } else if (value.charAt(0) != '(') {            // we are neigher inner nor outer rep.            throw new SQLException("Error parsing a " + typestring + " out of " + value);        }        if (value.equals("(EMPTY)")) {            // Special case for PostGIS 0.X style empty geometry collections            // (which are not OpenGIS compliant)            return;        }        PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(value), ',');        int subgeomcount = t.getSize();        subgeoms = createSubGeomArray(subgeomcount);        for (int p = 0; p < subgeomcount; p++) {            subgeoms[p] = createSubGeomInstance(t.getToken(p), haveM);        }        dimension = subgeoms[0].dimension;        // fetch haveMeasure from subpoint because haveM does only work with        // 2d+M, not with 3d+M geometries        haveMeasure = subgeoms[0].haveMeasure;    }    /**     * Return the appropriate instance of the subgeometry - this encapsulates     * subclass specific constructor calls     */    protected abstract Geometry createSubGeomInstance(String token, boolean haveM)            throws SQLException;    /**     * Return the appropriate instance of the subgeometry array - this     * encapsulates subclass specific array instantiation     */    protected abstract Geometry[] createSubGeomArray(int size);    protected boolean equalsintern(Geometry other) {        // Can be assumed to be the same subclass of Geometry, so it must be a        // ComposedGeom, too.        ComposedGeom cother = (ComposedGeom) other;        if (cother.subgeoms == null && subgeoms == null) {            return true;        } else if (cother.subgeoms == null || subgeoms == null) {            return false;        } else if (cother.subgeoms.length != subgeoms.length) {            return false;        } else if (subgeoms.length == 0) {            return true;        } else {            for (int i = 0; i < subgeoms.length; i++) {                if (!cother.subgeoms[i].equalsintern(this.subgeoms[i])) {                    return false;                }            }        }        return true;    }    public int numPoints() {        if ((subgeoms == null) || (subgeoms.length == 0)) {            return 0;        } else {            int result = 0;            for (int i = 0; i < subgeoms.length; i++) {                result += subgeoms[i].numPoints();            }            return result;        }    }    public Point getPoint(int n) {        if (n < 0) {            throw new ArrayIndexOutOfBoundsException("Negative index not allowed");        } else if ((subgeoms == null) || (subgeoms.length == 0)) {            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");        } else {            for (int i = 0; i < subgeoms.length; i++) {                Geometry current = subgeoms[i];                int np = current.numPoints();                if (n < np) {                    return current.getPoint(n);                } else {                    n -= np;                }            }            throw new ArrayIndexOutOfBoundsException("Index too large!");        }    }    /**     * Optimized version     */    public Point getLastPoint() {        if ((subgeoms == null) || (subgeoms.length == 0)) {            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");        } else {            return subgeoms[subgeoms.length - 1].getLastPoint();        }    }    /**     * Optimized version     */    public Point getFirstPoint() {        if ((subgeoms == null) || (subgeoms.length == 0)) {            throw new ArrayIndexOutOfBoundsException("Empty Geometry has no Points!");        } else {            return subgeoms[0].getFirstPoint();        }    }    public Iterator iterator() {        return java.util.Arrays.asList(subgeoms).iterator();    }    public boolean isEmpty() {        return (subgeoms == null) || (subgeoms.length == 0);    }    protected void mediumWKT(StringBuffer sb) {        if ((subgeoms == null) || (subgeoms.length == 0)) {            sb.append(" EMPTY");        } else {            sb.append('(');            innerWKT(sb);            sb.append(')');        }    }    protected void innerWKT(StringBuffer sb) {        subgeoms[0].mediumWKT(sb);        for (int i = 1; i < subgeoms.length; i++) {            sb.append(',');            subgeoms[i].mediumWKT(sb);        }    }    // Hashing - still buggy!    boolean nohash = true;    int hashcode = 0;    public int hashCode() {        if (nohash) {            hashcode = super.hashCode() ^ subgeoms.hashCode();            nohash = false;        }        return hashcode;    }    public boolean checkConsistency() {        if (super.checkConsistency()) {            if (isEmpty()) {                return true;            }            // cache to avoid getMember opcode            int _dimension = this.dimension;            boolean _haveMeasure = this.haveMeasure;            int _srid = this.srid;            for (int i = 0; i < subgeoms.length; i++) {                Geometry sub = subgeoms[i];                if (!(sub.checkConsistency() && sub.dimension == _dimension                        && sub.haveMeasure == _haveMeasure && sub.srid == _srid)) {                    return false;                }            }            return true;        } else {            return false;        }    }    public void setSrid(int srid) {        super.setSrid(srid);        for (int i = 0; i < subgeoms.length; i++) {            subgeoms[i].setSrid(srid);        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区的| 一区二区三区四区高清精品免费观看| 久久久综合精品| 亚洲欧美另类综合偷拍| 日本va欧美va精品发布| 99久久免费视频.com| 日韩精品专区在线| 亚洲宅男天堂在线观看无病毒| 久久av资源网| 欧美老女人第四色| 亚洲欧美日韩国产成人精品影院| 九色综合狠狠综合久久| 欧美日本精品一区二区三区| 欧美激情在线免费观看| 激情文学综合插| 欧美精品粉嫩高潮一区二区| 亚洲久草在线视频| 成人av资源下载| 久久久亚洲精品一区二区三区| 青青国产91久久久久久| 欧美艳星brazzers| 亚洲欧美福利一区二区| 不卡视频免费播放| 亚洲国产精品99久久久久久久久| 九九视频精品免费| 日韩丝袜美女视频| 日本三级亚洲精品| 91麻豆精品国产91久久久更新时间| 一区二区三区四区国产精品| 色婷婷av一区二区| 自拍视频在线观看一区二区| 99这里都是精品| 国产精品传媒在线| 色婷婷国产精品久久包臀| www国产精品av| 久久国产日韩欧美精品| 日韩美女主播在线视频一区二区三区| 日韩电影免费一区| 欧美不卡视频一区| 看片的网站亚洲| 久久综合九色综合欧美就去吻| 激情五月婷婷综合| 久久九九国产精品| 成人精品国产免费网站| 亚洲天天做日日做天天谢日日欢| a级精品国产片在线观看| 国产精品私人自拍| 99精品欧美一区| 亚洲综合色丁香婷婷六月图片| 欧美日韩中文一区| 日本视频免费一区| 久久久久久久国产精品影院| 国产成人免费视频网站| 成人欧美一区二区三区1314| 99久久婷婷国产综合精品| 亚洲男人的天堂在线aⅴ视频 | 国产精品久久久久aaaa| 成人一区在线看| 亚洲精品少妇30p| 91精品国产综合久久福利| 黄色日韩网站视频| 亚洲免费电影在线| 91麻豆精品国产自产在线观看一区 | 欧美日韩亚洲另类| 男女男精品网站| 国产欧美日韩激情| 色婷婷久久一区二区三区麻豆| 偷拍一区二区三区四区| 欧美r级在线观看| 99精品视频在线观看免费| 午夜精品一区二区三区三上悠亚| 久久综合成人精品亚洲另类欧美| 不卡欧美aaaaa| 免费黄网站欧美| 国产精品超碰97尤物18| 日韩午夜激情av| 色综合久久久久综合99| 黄色日韩三级电影| 亚洲综合一区在线| 国产精品网曝门| 日韩亚洲欧美高清| 91视频免费播放| 久久国产精品第一页| 伊人开心综合网| 亚洲国产精品黑人久久久| 欧美欧美欧美欧美| 99久久婷婷国产| 国产乱理伦片在线观看夜一区| 亚洲国产一区二区三区| 国产欧美一区二区三区在线老狼 | av一二三不卡影片| 免费日韩伦理电影| 亚洲永久精品国产| 国产精品久久久一区麻豆最新章节| 欧美一区二区三区婷婷月色| 色婷婷国产精品综合在线观看| 国产乱码一区二区三区| 免费观看成人av| 亚洲成人av在线电影| 国产精品国产三级国产普通话99 | 美女视频黄久久| 一区二区在线看| 中文字幕在线观看不卡| 久久久国产午夜精品| 日韩欧美卡一卡二| 91精品国产高清一区二区三区| 欧美系列一区二区| 色94色欧美sute亚洲线路一久| 99综合电影在线视频| av电影天堂一区二区在线| 床上的激情91.| 国产成人av一区二区| 国产激情91久久精品导航| 韩国女主播成人在线观看| 老司机午夜精品| 精品无人码麻豆乱码1区2区| 麻豆一区二区在线| 精品伊人久久久久7777人| 裸体在线国模精品偷拍| 激情偷乱视频一区二区三区| 精品制服美女久久| 国内久久精品视频| 国产麻豆日韩欧美久久| 成人综合在线观看| www.视频一区| 色综合天天综合网天天狠天天| 99国产精品久久久久久久久久| 91色视频在线| 欧美日韩国产一级片| 91精品欧美久久久久久动漫| 日韩视频一区二区在线观看| 欧美成人精品福利| 国产偷国产偷精品高清尤物 | 成人avav影音| 色系网站成人免费| 欧美视频在线观看一区| 日韩视频免费直播| 久久久久久久久久久电影| 亚洲欧洲日产国码二区| 亚洲一区二区欧美日韩| 美女视频黄 久久| 国产91对白在线观看九色| 色8久久精品久久久久久蜜| 欧美日韩www| 精品卡一卡二卡三卡四在线| 中文乱码免费一区二区| 亚洲成人福利片| 国产一区 二区| 91色综合久久久久婷婷| 欧美一区二区三区性视频| 国产调教视频一区| 亚洲国产综合视频在线观看| 激情综合一区二区三区| 91在线一区二区三区| 欧美丰满少妇xxxxx高潮对白 | 国产99久久久精品| 欧美亚洲日本国产| 精品成人一区二区三区| 亚洲图片激情小说| 久久国产成人午夜av影院| 99久久综合国产精品| 日韩欧美视频在线| 亚洲精品视频在线| 国产一区二区三区在线看麻豆| 色哟哟在线观看一区二区三区| 欧美成人综合网站| 一区二区三区小说| 国产福利一区在线| 欧美人与禽zozo性伦| 亚洲图片欧美激情| 国产在线精品一区二区不卡了| 欧美日韩一区二区三区在线| 国产欧美日产一区| 精品无码三级在线观看视频 | 97超碰欧美中文字幕| 精品国产在天天线2019| 亚洲一区二区视频| 不卡视频在线看| 久久日韩精品一区二区五区| 亚洲国产综合色| 91视频观看视频| 中文字幕欧美日本乱码一线二线| 老司机午夜精品| 欧美精品高清视频| 亚洲成人精品在线观看| 91丝袜高跟美女视频| 欧美国产精品专区| 国产尤物一区二区在线| 欧美一区二区免费观在线| 亚洲一区二区三区四区中文字幕 | 激情综合网最新| 日韩一区二区影院| 日本欧美肥老太交大片| 欧美性感一区二区三区| 一区av在线播放| 一本大道综合伊人精品热热| 综合分类小说区另类春色亚洲小说欧美 | 亚洲观看高清完整版在线观看| 91国偷自产一区二区三区观看| 亚洲欧美一区二区三区孕妇|