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

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

?? jtsshape.java

?? Postgis是Postgres的Gis空間引擎,支持空間索引和空間操作,擴(kuò)展了很多空間類型
?? JAVA
字號(hào):
package org.postgis.jts;import java.awt.Rectangle;import java.awt.Shape;import java.awt.geom.AffineTransform;import java.awt.geom.PathIterator;import java.awt.geom.Point2D;import java.awt.geom.Rectangle2D;import com.vividsolutions.jts.geom.Coordinate;import com.vividsolutions.jts.geom.CoordinateSequence;import com.vividsolutions.jts.geom.Envelope;import com.vividsolutions.jts.geom.Geometry;import com.vividsolutions.jts.geom.GeometryCollection;import com.vividsolutions.jts.geom.GeometryFactory;import com.vividsolutions.jts.geom.LineString;import com.vividsolutions.jts.geom.LinearRing;import com.vividsolutions.jts.geom.Point;import com.vividsolutions.jts.geom.Polygon;import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;public class JTSShape implements Shape {    static GeometryFactory fac = new GeometryFactory();    Geometry geom;    final static LinearRing[] NOSHELLS = {};    public JTSShape(Geometry _geom) {        this.geom = _geom;    }        public JTSShape(JtsGeometry _geom) {        this(_geom.getGeometry());    }        public boolean contains(Point2D p) {        return contains(p.getX(), p.getY());    }    public boolean contains(double x, double y) {        Coordinate c = new Coordinate(x, y);        Point p = fac.createPoint(c);        return geom.contains(p);    }    public boolean contains(Rectangle2D r) {        return contains(r.getMinX(), r.getMinY(), r.getWidth(), r.getHeight());    }    public boolean contains(double x, double y, double w, double h) {        Polygon p = createRect(x, y, w, h);        return geom.contains(p);    }    protected Polygon createRect(double x, double y, double w, double h) {        double[] arr = { x, y, x + w, y, x + w, y + h, x, y + h, x, y };        PackedCoordinateSequence shell = new PackedCoordinateSequence.Double(arr, 2);        Polygon p = fac.createPolygon(fac.createLinearRing(shell), NOSHELLS);        return p;    }    public Rectangle2D getBounds2D() {        Envelope env = geom.getEnvelopeInternal();        return new Rectangle2D.Double(env.getMinX(), env.getMaxX(), env.getWidth(), env.getHeight());    }    public Rectangle getBounds() {        // We deal simple code for efficiency here, the getBounds() rounding        // rules are ugly...        return getBounds2D().getBounds();    }    public PathIterator getPathIterator(AffineTransform at) {        return getPathIterator(geom, at);    }    public PathIterator getPathIterator(AffineTransform at, double flatness) {        // we don't have much work here, as we only have linear segments, no        // "flattening" necessary.        return getPathIterator(at);    }    public boolean intersects(Rectangle2D r) {        return intersects(r.getMinX(), r.getMinY(), r.getWidth(), r.getHeight());    }    public boolean intersects(double x, double y, double w, double h) {        Polygon p = createRect(x, y, w, h);        return geom.intersects(p);    }    public static GeometryPathIterator getPathIterator(Geometry geometry, AffineTransform _at) {        if (geometry instanceof Point) {            return new PointPathIterator((Point) geometry, _at);        } else if (geometry instanceof LineString) {            return new LineStringPathIterator((LineString) geometry, _at);        } else if (geometry instanceof Polygon) {            return new PolygonPathIterator((Polygon) geometry, _at);        } else {            return new GeometryCollectionPathIterator((GeometryCollection) geometry, _at);        }    }    public static abstract class GeometryPathIterator implements PathIterator {        protected final AffineTransform at;        protected int index=0;        GeometryPathIterator(AffineTransform _at) {            this.at = _at;        }        public final int getWindingRule() {            return PathIterator.WIND_EVEN_ODD;        }        public void next() {            index++;        }    }        public static class PointPathIterator extends GeometryPathIterator {        final Point p;        public PointPathIterator(Point _p, AffineTransform _at) {            super(_at);            p = _p;        }        public int currentSegment(float[] coords) {            switch (index) {            case 0:                coords[0] = (float) p.getX();                coords[1] = (float) p.getY();                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_MOVETO;            case 1:                return PathIterator.SEG_CLOSE;            default:                throw new IllegalStateException();            }        }        public int currentSegment(double[] coords) {            switch (index) {            case 0:                coords[0] = p.getX();                coords[1] = p.getY();                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_MOVETO;            case 1:                return PathIterator.SEG_CLOSE;            default:                throw new IllegalStateException();            }        }        public boolean isDone() {            return index > 1;        }    }    public static class LineStringPathIterator extends GeometryPathIterator {        CoordinateSequence cs;        final boolean isRing;        public LineStringPathIterator(LineString ls, AffineTransform _at) {            super(_at);            cs = ls.getCoordinateSequence();            isRing = ls instanceof LinearRing;        }        /** only to be called from PolygonPathIterator subclass */        protected void reInit(CoordinateSequence _cs) {            cs = _cs;            index=0;        }                public int currentSegment(float[] coords) {            if (index == 0) {                coords[0] = (float) cs.getOrdinate(index, 0);                coords[1] = (float) cs.getOrdinate(index, 1);                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_MOVETO;            } else if (index < cs.size()) {                coords[0] = (float) cs.getOrdinate(index, 0);                coords[1] = (float) cs.getOrdinate(index, 1);                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_LINETO;            } else if (isRing && index == cs.size()) {                return PathIterator.SEG_CLOSE;            } else {                throw new IllegalStateException();            }        }        public int currentSegment(double[] coords) {            if (index == 0) {                coords[0] = cs.getOrdinate(index, 0);                coords[1] = cs.getOrdinate(index, 1);                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_MOVETO;            } else if (index < cs.size()) {                coords[0] = cs.getOrdinate(index, 0);                coords[1] = cs.getOrdinate(index, 1);                at.transform(coords, 0, coords, 0, 1);                return PathIterator.SEG_LINETO;            } else if (isRing && index == cs.size()) {                return PathIterator.SEG_CLOSE;            } else {                throw new IllegalStateException();            }        }        public boolean isDone() {            return isRing ? index > cs.size() : index >= cs.size();        }    }        public static class PolygonPathIterator extends LineStringPathIterator {        final Polygon pg;        int outerindex=-1;                public PolygonPathIterator(Polygon _pg, AffineTransform _at) {            super(_pg.getExteriorRing() ,_at);            pg=_pg;            index = -1;        }        public boolean isDone() {            return outerindex >= pg.getNumInteriorRing();        }                public void next() {            super.next();            if (super.isDone()) {                outerindex++;                if (outerindex < pg.getNumInteriorRing()) {                    super.reInit(pg.getInteriorRingN(outerindex).getCoordinateSequence());                }            }        }    }    public static class GeometryCollectionPathIterator extends GeometryPathIterator {        final GeometryCollection coll;        GeometryPathIterator current;        public GeometryCollectionPathIterator(GeometryCollection _coll, AffineTransform _at) {            super(_at);            coll = _coll;            current = getPathIterator(coll.getGeometryN(index), _at);        }        public boolean isDone() {            return index > coll.getNumGeometries();        }                public void next() {            current.next();            if (current.isDone()) {                index++;                if (index < coll.getNumGeometries()) {                    current = getPathIterator(coll.getGeometryN(index), at);                }            }        }        public int currentSegment(float[] coords) {            return current.currentSegment(coords);        }        public int currentSegment(double[] coords) {            return current.currentSegment(coords);        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩天堂在线观看| gogo大胆日本视频一区| 国产精品第四页| 亚洲精品在线观看视频| 91精品国产品国语在线不卡| 欧美午夜精品久久久| 日本丶国产丶欧美色综合| 91丨九色porny丨蝌蚪| 91视频观看视频| 91国产免费看| 欧美精品国产精品| 欧美一区二区福利在线| 精品国产免费人成电影在线观看四季| 日韩欧美的一区二区| 久久精品无码一区二区三区| 国产亚洲欧美色| 国产精品福利一区二区三区| 一区二区三区国产| 日韩高清不卡在线| 极品销魂美女一区二区三区| 国产精品影音先锋| 99精品视频一区二区| 欧美在线观看一区| 91精品国产综合久久精品| 精品国产伦一区二区三区观看方式 | 欧美一区二区三区四区视频| 欧美草草影院在线视频| 欧美国产亚洲另类动漫| 一区二区三区在线视频免费观看| 午夜精品一区二区三区三上悠亚| 韩国av一区二区三区在线观看| 大桥未久av一区二区三区中文| 99久久99久久精品国产片果冻| 欧美一区午夜视频在线观看| 久久伊人中文字幕| 亚洲精品欧美专区| 精品写真视频在线观看| 色视频成人在线观看免| 日韩欧美一级片| 亚洲天天做日日做天天谢日日欢| 视频在线在亚洲| 成人aa视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 国产精品理伦片| 日韩电影免费一区| 色伊人久久综合中文字幕| 精品国产免费久久| 亚洲bt欧美bt精品| 91丨porny丨国产| 久久亚洲精华国产精华液 | 欧美区在线观看| 国产精品久久久久影院| 久久av老司机精品网站导航| 欧美色爱综合网| 日韩毛片精品高清免费| 国产精品一区二区黑丝| 欧美一区二区三区播放老司机| 国产精品久久久久久久久久免费看 | 欧美mv日韩mv国产| 亚洲影院免费观看| av在线播放不卡| 久久夜色精品一区| 麻豆精品视频在线观看| 日韩欧美一级片| 夜色激情一区二区| jlzzjlzz亚洲日本少妇| 久久丝袜美腿综合| 国精品**一区二区三区在线蜜桃| 欧美日韩国产电影| 亚洲一区在线免费观看| k8久久久一区二区三区| 日本一区二区三区久久久久久久久不 | 一级特黄大欧美久久久| 成人99免费视频| 国产精品进线69影院| 国产91精品露脸国语对白| 国产喂奶挤奶一区二区三区| 国产精品一区在线观看你懂的| 日韩色视频在线观看| 美女性感视频久久| 日韩一区二区三区三四区视频在线观看| 亚洲一区成人在线| 欧美色成人综合| 日韩电影在线观看一区| 日韩视频在线你懂得| 久久99国产精品免费网站| 久久综合色天天久久综合图片| 久久成人免费电影| 久久精品欧美一区二区三区麻豆| 国产精品69久久久久水密桃| 国产精品久久久一本精品| 成人免费看视频| 亚洲激情自拍偷拍| 欧美乱妇15p| 国精品**一区二区三区在线蜜桃| 国产欧美日韩另类一区| 99久久精品免费看国产免费软件| 亚洲精品乱码久久久久久久久 | 91精品一区二区三区久久久久久| 日韩国产在线观看| 精品国产凹凸成av人网站| 成人高清在线视频| 一区二区三区鲁丝不卡| 欧美一级欧美三级在线观看| 国产在线视频一区二区三区| 18成人在线视频| 欧美日韩视频在线第一区| 裸体歌舞表演一区二区| 国产精品日日摸夜夜摸av| 91久久香蕉国产日韩欧美9色| 日本午夜精品一区二区三区电影| 久久女同精品一区二区| 欧洲国产伦久久久久久久| 六月婷婷色综合| 亚洲精品一二三四区| 日韩精品一区二区三区在线 | 亚洲高清免费观看 | 99免费精品视频| 日韩精品一二三区| 国产蜜臀97一区二区三区| 欧美精品在线观看一区二区| 国产精品一区二区视频| 亚洲一卡二卡三卡四卡| 欧美激情中文字幕一区二区| 欧美色涩在线第一页| 国产成人午夜精品5599| 天天操天天干天天综合网| 中文字幕一区二区三区四区不卡| 91精品国产综合久久蜜臀| 99re8在线精品视频免费播放| 久久97超碰国产精品超碰| 亚洲乱码国产乱码精品精的特点| 精品国产免费视频| 91精品国产一区二区| 色天天综合色天天久久| 国产成人夜色高潮福利影视| 麻豆久久久久久久| 亚洲福利视频一区| 亚洲丝袜另类动漫二区| 国产日韩欧美一区二区三区综合| 51精品视频一区二区三区| 91首页免费视频| 成人午夜又粗又硬又大| 国产精品一区二区x88av| 美女视频一区二区三区| 天天av天天翘天天综合网| 日韩理论片中文av| 亚洲欧美怡红院| 中文字幕免费不卡| 中文字幕av不卡| 国产三级一区二区| 国产午夜精品一区二区 | 国产精品一区二区x88av| 蜜臀a∨国产成人精品| 日日夜夜免费精品| 日韩中文字幕亚洲一区二区va在线 | 日本午夜精品视频在线观看 | 国产日韩欧美在线一区| 精品91自产拍在线观看一区| 日韩欧美久久久| 91精品国产91综合久久蜜臀| 欧美一三区三区四区免费在线看 | 91在线视频播放| av爱爱亚洲一区| 一本大道久久a久久综合婷婷| 色94色欧美sute亚洲线路一ni| 色综合夜色一区| 欧美日韩一区二区三区四区五区| 欧美日韩久久久久久| 91麻豆精品国产91久久久久| 日韩免费在线观看| www欧美成人18+| 国产精品超碰97尤物18| 亚洲综合色区另类av| 日韩精品乱码免费| 九九视频精品免费| 不卡的av在线| 欧美日韩精品一区二区天天拍小说| 欧美一卡2卡3卡4卡| 久久久无码精品亚洲日韩按摩| 亚洲欧洲另类国产综合| 亚洲国产精品久久久久秋霞影院| 青草国产精品久久久久久| 国产美女视频一区| 一本色道久久综合亚洲91| 91精品国产全国免费观看| 中文av字幕一区| 男男gaygay亚洲| av电影一区二区| 日韩免费看的电影| 中文字幕中文字幕中文字幕亚洲无线 | 国产乱码精品一品二品| 成人黄色av电影| 欧美一区二区三区在线观看 | 日韩欧美一区二区三区在线| 亚洲国产经典视频| 免费欧美在线视频| 色噜噜狠狠一区二区三区果冻| 日韩一区二区电影| 一区二区三区中文字幕精品精品 |