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

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

?? geopath.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
字號:
/* *                     RESTRICTED RIGHTS LEGEND * *                        BBNT Solutions LLC *                        A Verizon Company *                        10 Moulton Street *                       Cambridge, MA 02138 *                         (617) 873-3000 * * Copyright BBNT Solutions LLC 2005 All Rights Reserved *  */package com.bbn.openmap.geo;/** * An abstraction of an arbitrary geographic path. A path is assumed * to mean a chain of points that although it may share a common * starting and end point, it will not not represent an area in that * case. *  * @author mthome@bbn.com */public interface GeoPath extends GeoExtent {    /** @return an iterator over the segments of the path * */    GeoPath.SegmentIterator segmentIterator();    /** @return an iterator over the points of the path * */    GeoPath.PointIterator pointIterator();    /** Does the segment s come within epsilon (in radians) of us? */    boolean isSegmentNear(GeoSegment s, double epsilon);    /**     * Return the points that make up the path as an array of Geo     * object. Closed paths are not specially marked. Specifically,     * closed paths do not have equal first and last Geo points in the     * returned array.     *      * @return the Geo points of the Path     */    Geo[] toPointArray();    /**     * @return the number of points in the path.     */    int length();    interface SegmentIterator extends java.util.Iterator {        /** Asking if there is another segment. * */        boolean hasNext();        /**         * standard implementation of Iterator.next() returns the same         * value as nextSegment(), albeit needing casting to GSegment.         */        Object next();        /**         * Advance to the next pegment. Some implementations will also         * implement GSegment, so that #next() returns the iterator         * instance itself, but this should not be depended on.         *          * @return the next GSegment         */        GeoSegment nextSegment();    }    interface PointIterator extends java.util.Iterator {        /** Asking if is there another point. * */        boolean hasNext();        /**         * standard implementation of Iterator.next() returns the same         * value as nextPoint(), albeit needing casting to GPoint.         */        Object next();        /**         * Advance to the next point. Some implementations will also         * implement GPoint, so that #next() returns the iterator         * instance itself, but this should not be depended on.         *          * @return the next GPoint         */        GeoPoint nextPoint();    }    /**     * An implementation of Path that takes an alternating lat/lon     * array and (optionally) an array of altitudes.     */    public static class Impl implements GeoPath {        protected Geo[] pts;        protected int length;        protected Impl() {}        /**         * Create a path of LatLon pairs.         *          * @param lls alternating lat/lon in decimal degrees.         */        public Impl(float[] lls) {            this(lls, true);        }        /**         * Create a path of LatLon pairs.         *          * @param lls alternating lat/lon values.         * @param isDegrees true if lat/lon are in degrees, false if         *        in radians.         */        public Impl(float[] lls, boolean isDegrees) {            int al = lls.length;            int length = al / 2;            Geo[] pts = new Geo[length];            for (int i = 0, p = 0; i < al; i = i + 2) {                pts[p] = new Geo(lls[i], lls[i + 1], isDegrees);                p++;            }            setPoints(pts);        }        /**         * Create a path from Geos.         *          * @param geos         */        public Impl(Geo[] geos) {            setPoints(geos);        }                /**         * Method for subclasses to set pts and length of Geos.         * @param points         */        protected void setPoints(Geo[] points) {            pts = points;            if (pts != null) {                length = pts.length;            } else {                length = 0;            }        }        public Geo[] toPointArray() {            return pts;        }        public boolean isSegmentNear(GeoSegment s, double epsilon) {            return Intersection.isSegmentNearPoly(s,                    toPointArray(),                    epsilon) != null;        }        protected transient BoundingCircle bc = null;        public synchronized BoundingCircle getBoundingCircle() {            if (bc == null)                bc = new BoundingCircle.Impl(this);            return bc;        }        public int length() {            return length;        }        public GeoPath.SegmentIterator segmentIterator() {            return new SegIt();        }        public GeoPath.PointIterator pointIterator() {            return new PointIt();        }        /**         * Callback for the SegIt to find out how the LatLonPath wants         * the segment IDed.         *          * @param i The index of the segment in question.         * @return Object that IDs the segment, could be this path,         *         too. Depends on what the Intersection Algorithm         *         wants to do in consider().         */        protected Object getSegID(int i) {            return new Integer(i);        }        /**         * Callback for the PointIt to find out how the LatLonPath         * wants the points IDed.         *          * @param i The index of the point in question.         * @return Object that IDs the point, could be this path, too.         *         Depends on what the Intersection Algorithm wants to         *         do in consider().         */        protected Object getPointID(int i) {            return new Integer(i);        }        protected class SegIt implements GeoPath.SegmentIterator, GeoSegment {            int i = -1;            Geo[] seg = new Geo[2];            public SegIt() {                seg[1] = pts[0];            }            /** Constructs a new bounding circle instance each call. * */            public BoundingCircle getBoundingCircle() {                Geo c = Intersection.center(seg);                return new BoundingCircle.Impl(c, c.distance(seg[0]));            }            public boolean hasNext() {                return i < (length - 2);            }            public Object next() {                return nextSegment();            }            public GeoSegment nextSegment() {                i++;                seg[0] = seg[1];                seg[1] = pts[i + 1];                return this;            }            public void remove() {                throw new UnsupportedOperationException("Path.SegmentIterator doesn't support remove");            }            /**             * GSegment method.             *              * @return the current segment as a two-element array of             *         Geo The first point is the "current point" and             *         the second is the next. TODO If there isn't             *         another point available, will throw an             *         indexOutOfBounds exception.             */            public Geo[] getSeg() {                return seg;            }            /**             * @return the current segment as a float[]. The first             *         point is the "current point" and the second is             *         the next. TODO If there isn't another point             *         available, will throw an indexOutOfBounds             *         exception.             */            public float[] getSegArray() {                return new float[] { (float) seg[0].getLatitude(),                        (float) seg[0].getLongitude(),                        (float) seg[1].getLatitude(),                        (float) seg[1].getLongitude() };            }            /**             * Return Object ID for current segment.             */            public Object getSegId() {                return GeoPath.Impl.this.getSegID(i);            }        }        protected class PointIt implements GeoPath.PointIterator, GeoPoint {            int i = -1;            public PointIt() {}            public boolean hasNext() {                return i < length;            }            public Object next() {                return nextPoint();            }            public GeoPoint nextPoint() {                i++;                return this;            }            public void remove() {                throw new UnsupportedOperationException("Path.Iterator doesn't support remove");            }            public Geo getPoint() {                return pts[i];            }            public Object getPointId() {                return GeoPath.Impl.this.getPointID(i);            }            public BoundingCircle getBoundingCircle() {                return new BoundingCircle.Impl(pts[i], 0.0);            }        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡国产视频| 在线成人小视频| 久久国产福利国产秒拍| 日本在线不卡视频| 蜜桃精品视频在线观看| 另类小说图片综合网| 美女视频网站久久| 精品一区二区在线看| 国产在线国偷精品产拍免费yy| 美女免费视频一区| 国产一区二区三区在线观看精品 | 精品国产乱码久久久久久影片| 欧美日韩五月天| 91麻豆精品国产91久久久久久久久 | 激情综合网av| 国产aⅴ精品一区二区三区色成熟| 国产自产v一区二区三区c| 国产成人99久久亚洲综合精品| 成人app软件下载大全免费| 色又黄又爽网站www久久| 欧美唯美清纯偷拍| 日韩亚洲欧美综合| 国产精品视频一二三| 亚洲一区av在线| 美美哒免费高清在线观看视频一区二区| 国内一区二区在线| 99精品久久只有精品| 91 com成人网| 久久久久久久久蜜桃| 亚洲人一二三区| 久久精品国产99国产| 国产福利一区二区三区视频在线| 91美女片黄在线观看91美女| 91精品国产aⅴ一区二区| 欧美精品一区二区在线观看| 亚洲男人的天堂在线aⅴ视频| 日韩中文字幕不卡| k8久久久一区二区三区| 欧美精品粉嫩高潮一区二区| 国产日韩欧美不卡在线| 亚洲成人精品一区| 成人午夜大片免费观看| 欧美性大战久久久久久久| 国产色产综合色产在线视频| 亚洲电影一级片| 99国产精品国产精品久久| 日韩一级免费观看| 一区二区三区欧美亚洲| 国产一区二区伦理片| 91 com成人网| 亚洲午夜三级在线| 成人晚上爱看视频| 欧美一区二区三区电影| 一区视频在线播放| 国产一区二区三区在线看麻豆| 欧美日韩国产区一| 亚洲人成伊人成综合网小说| 国产一区二区三区四区五区美女| 在线成人小视频| 亚洲成人免费av| 99久久精品免费看| 国产欧美日本一区视频| 麻豆成人久久精品二区三区红| 欧美三级电影在线看| 久久久久国产精品麻豆ai换脸| 日本aⅴ亚洲精品中文乱码| 欧美日韩国产首页在线观看| 亚洲精品高清在线| 91丨porny丨蝌蚪视频| 国产精品色噜噜| 国产成人在线视频免费播放| 2022国产精品视频| 视频在线观看91| 91精品国产免费| 久久精品国产秦先生| 日韩免费看网站| 精品一区二区综合| 久久―日本道色综合久久| 国内精品久久久久影院一蜜桃| 日韩欧美专区在线| 久久99久久99精品免视看婷婷| 欧美一区二区播放| 国产一区999| 中文字幕不卡在线| 白白色亚洲国产精品| 亚洲激情六月丁香| 欧美视频三区在线播放| 日韩国产欧美三级| 日韩你懂的在线观看| 国产精品亚洲成人| 亚洲色图欧美激情| 欧美色综合久久| 久久69国产一区二区蜜臀 | 国产1区2区3区精品美女| xfplay精品久久| 成人黄色软件下载| 一卡二卡欧美日韩| 91精品国产色综合久久不卡电影| 精品制服美女久久| 国产精品久久影院| 欧美视频在线一区| 韩国一区二区在线观看| 综合网在线视频| 91.xcao| 99久久免费视频.com| 午夜精彩视频在线观看不卡| 精品国产一区二区亚洲人成毛片| 99久久久精品免费观看国产蜜| 五月天丁香久久| 国产欧美日韩在线视频| 91视频在线看| 精品中文字幕一区二区小辣椒| √…a在线天堂一区| 欧美一区二区三区喷汁尤物| 成人av资源站| 日本不卡一区二区三区| 国产精品成人免费在线| 欧美精品1区2区| 成人午夜又粗又硬又大| 日韩av电影天堂| 最新欧美精品一区二区三区| 91精品国产入口| 在线精品观看国产| 成人福利在线看| 蜜桃一区二区三区在线观看| 亚洲日本va午夜在线影院| 国产亚洲欧洲997久久综合| 欧美欧美欧美欧美| 色综合天天综合在线视频| 久久成人18免费观看| 亚洲一卡二卡三卡四卡无卡久久 | 日本一区二区成人| 日韩精品中文字幕一区| 一本大道综合伊人精品热热| 国产成人免费视频一区| 蜜臀av一区二区在线观看 | 中文字幕第一区二区| 欧美一级高清大全免费观看| 欧洲精品中文字幕| 91亚洲永久精品| 粉嫩aⅴ一区二区三区四区五区| 美日韩黄色大片| 奇米四色…亚洲| 麻豆精品久久精品色综合| 亚洲18色成人| 丝袜美腿成人在线| 午夜a成v人精品| 婷婷久久综合九色综合绿巨人| 一个色妞综合视频在线观看| 亚洲男人的天堂网| 一二三四区精品视频| 亚洲国产综合色| 香蕉乱码成人久久天堂爱免费| 亚洲人被黑人高潮完整版| 亚洲色大成网站www久久九九| 国产精品对白交换视频| 欧美激情中文字幕一区二区| 91精品国产综合久久福利| 91精品国产一区二区三区香蕉| 欧美美女一区二区在线观看| 欧美人妖巨大在线| 日韩亚洲电影在线| 精品国产麻豆免费人成网站| 久久久噜噜噜久久中文字幕色伊伊| 精品国产区一区| 国产精品色婷婷| 亚洲一区精品在线| 香蕉成人伊视频在线观看| 午夜国产精品影院在线观看| 日韩主播视频在线| 国内精品写真在线观看| 成人h精品动漫一区二区三区| 日本久久电影网| 欧美浪妇xxxx高跟鞋交| 日韩情涩欧美日韩视频| 欧美激情中文字幕一区二区| 亚洲精品国产无天堂网2021| 日韩av一区二区三区四区| 韩国三级在线一区| 色综合天天综合给合国产| 欧美在线播放高清精品| 日韩欧美色综合| 国产精品视频免费看| 亚洲第一久久影院| 精品一区二区三区av| 91美女在线视频| 欧美tk—视频vk| 亚洲视频一区在线观看| 日本中文字幕不卡| av在线不卡电影| 日韩精品一区二区三区四区视频 | 亚洲免费伊人电影| 轻轻草成人在线| 白白色亚洲国产精品| 欧美一区二区三区视频在线观看| 欧美极品美女视频| 日日摸夜夜添夜夜添国产精品| 成人18视频日本| 精品久久久久久久久久久久包黑料| 国产精品第一页第二页第三页|