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

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

?? editableompoly.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
        // returned, instead of the duplicate ending point.        int lastPointIndex = polyGrabPoints.size() - 1;        if (gb != null && gb == (GrabPoint) polyGrabPoints.get(lastPointIndex)                && isEnclosed()) {            gb = (GrabPoint) polyGrabPoints.get(0);            setMovingPoint(gb);        }        return gb;    }    /**     * Check to make sure the grab points are not null. If they are,     * allocate them, and them assign them to the array.     */    public void assertGrabPoints() {        // This gets called alot. Usually, for EditableOMGraphics        // that have the same number of GrabPoints, they can just be        // allocated here. I think we'll have to look at the OMPoly,        // find out how many points have been defined for it (since        // it's variable), and make sure everything's OK.        if (polyGrabPoints == null) {            polyGrabPoints = new ArrayList();        }        // At least we know about this one.        if (gpo == null) {            gpo = new OffsetGrabPoint(-1, -1);        }    }    /**     * An internal method that trys to make sure that the grab point     * for the first node, and for the last, in case of an enclosed     * polygon, are OffsetGrabPoints. All of the other points will be     * regular GrabPoints. Usually called when assigning points to a     * previously defined poly.     *      * @param x the horizontal pixel location of the grab point.     * @param y the vertical pixel location of the grab point.     * @param index the index of the grab point.     * @param last the index of the last point.     */    protected GrabPoint createGrabPoint(int x, int y, int index, int last) {        if (index == 0 || (index == last && (isEnclosed()))) {            return new OffsetGrabPoint(x, y);        } else {            return new GrabPoint(x, y);        }    }    /**     * Set the grab points for the graphic provided, setting them on     * the extents of the graphic. Called when you want to set the     * grab points off the points of the graphic.     */    public void setGrabPoints(OMGraphic graphic) {        if (!(graphic instanceof OMPoly)) {            return;        }        assertGrabPoints();        polyGrabPoints.clear();        gpo.clear();        OMPoly poly = (OMPoly) graphic;        boolean ntr = poly.getNeedToRegenerate();        int renderType = poly.getRenderType();        Point p = new Point();        GrabPoint gb;        int i;        int npts;        if (ntr == false) {            if (renderType == OMGraphic.RENDERTYPE_LATLON) {                Debug.message("eomg", "EditableOMPoly: modifying lat/lon line");                if (projection != null) {                    float[] ll = poly.getLatLonArray();                    gb = null; //reset for this loop                    for (i = 0; i < ll.length; i += 2) {                        projection.forward(ll[i], ll[i + 1], p, true);                        // Need to add a grab point for this                        // coordinate                        gb = new OffsetGrabPoint((int) p.getX(), (int) p.getY());                        polyGrabPoints.add(gb);                    }                }            } else if (renderType == OMGraphic.RENDERTYPE_OFFSET) {                // Grab the projected endpoints                Debug.message("eomg", "EditableOMPoly: modifying offset poly");                int x;                int y;                npts = poly.xs.length;                // Check to see if the poly is a offset poly, and set                // the                // offset grab point accordingly.                if (projection != null) {                    projection.forward(poly.lat, poly.lon, p, true);                    gpo.set((int) p.getX(), (int) p.getY());                    if (poly.coordMode == OMPoly.COORDMODE_ORIGIN) {                        for (i = 0; i < npts; i++) {                            x = poly.xs[i] + p.x;                            y = poly.ys[i] + p.y;                            gb = new OffsetGrabPoint(x, y);                            polyGrabPoints.add(gb);                        }                    } else { // CMode Previous offset deltas                        int lastX = p.x;                        int lastY = p.y;                        for (i = 0; i < npts; i++) {                            x = poly.xs[i] + lastX;                            y = poly.ys[i] + lastY;                            gb = new OffsetGrabPoint(x, y);                            polyGrabPoints.add(gb);                            lastX += x;                            lastY += y;                        }                    }                }            } else {                npts = poly.xs.length;                Debug.message("eomg", "EditableOMPoly: modifying x/y poly");                for (i = 0; i < npts; i++) {                    gb = new OffsetGrabPoint(poly.xs[i], poly.ys[i]);                    polyGrabPoints.add(gb);                }            }            // Add the || to maintain manualEnclosed if it was            // externally set before the OMPoly is actually defined,            // indicating that the user wants to draw a polygon.            setEnclosed(syncEnclosed() || isEnclosed());            addPolyGrabPointsToOGP(gpo);        } else {            Debug.message("eomg",                    "EditableOMPoly.setGrabPoints: graphic needs to be regenerated ");        }    }    /**     * Take the current location of the GrabPoints, and modify the     * location parameters of the OMPoly with them. Called when you     * want the graphic to change according to the grab points.     */    public void setGrabPoints() {        int i;        GrabPoint gb; // just to use a temp marker        LatLonPoint llp = new LatLonPoint();        int renderType = poly.getRenderType();        if (renderType == OMGraphic.RENDERTYPE_LATLON) {            if (projection != null) {                float[] floats = new float[polyGrabPoints.size() * 2];                for (i = 0; i < polyGrabPoints.size(); i++) {                    gb = (GrabPoint) polyGrabPoints.get(i);                    projection.inverse(gb.getX(), gb.getY(), llp);                    floats[2 * i] = llp.radlat_;                    floats[2 * i + 1] = llp.radlon_;                }                poly.setLocation((float[]) floats, OMGraphic.RADIANS);            } else {                Debug.message("eomg",                        "EditableOMPoly.setGrabPoints: projection is null, can't figure out LATLON points for poly.");            }        } else if (renderType == OMGraphic.RENDERTYPE_OFFSET) {            // Do the offset point.            if (projection != null) {                projection.inverse(gpo.getX(), gpo.getY(), llp);            } else {                Debug.message("eomg",                        "EditableOMPoly.setGrabPoints: projection is null, can't figure out LATLON points for poly offset.");            }        }        if (renderType == OMGraphic.RENDERTYPE_XY                || renderType == OMGraphic.RENDERTYPE_OFFSET) {            int[] ints = new int[polyGrabPoints.size() * 2];            if (renderType == OMGraphic.RENDERTYPE_OFFSET && gpo != null) {                // If offset rendertype, the x-y have to be offset                // distances, not screen pixel locations. For the                // polygon, you also need to take into account that                // the ints can represent 2 different things: distance                // from the origin (Offset) or distance from the                // previous point. Need to check with the poly to                // find out which to do.                GrabPoint previous = gpo;                for (i = 0; i < polyGrabPoints.size(); i++) {                    gb = (GrabPoint) polyGrabPoints.get(i);                    if (poly.coordMode == OMPoly.COORDMODE_PREVIOUS) {                        ints[2 * i] = gb.getX() - previous.getX();                        ints[2 * i + 1] = gb.getY() - previous.getY();                        previous = gb;                    } else {                        ints[2 * i] = gb.getX() - gpo.getX();                        ints[2 * i + 1] = gb.getY() - gpo.getY();                    }                }                poly.setLocation(llp.radlat_,                        llp.radlon_,                        OMGraphic.RADIANS,                        ints);            } else {                for (i = 0; i < polyGrabPoints.size(); i++) {                    gb = (GrabPoint) polyGrabPoints.get(i);                    ints[2 * i] = gb.getX();                    ints[2 * i + 1] = gb.getY();                }                poly.setLocation(ints);            }        }    }    /**     * Add a point to the end of the polyline/polygon and then make it     * the moving one.     *      * @return the index for the point in the polygon, starting with     *         0.     */    public int addMovingPoint(int x, int y) {        int position = addPoint(x, y);        setMovingPoint((GrabPoint) polyGrabPoints.get(position));        return position;    }    /**     * Add a point to the end of the polyline/polygon.     *      * @return the index for the point in the polygon, starting with     *         0.     */    public int addPoint(int x, int y) {        return addPoint(x, y, Integer.MAX_VALUE);    }    /**     * Add a point at a certain point in the polygon coordinate list.     * If the position is less than zero, the point will be the     * starting point. If the position is greater than the list of     * current points, the point will be added to the end of the poly.     *      * @return the index for the point in the polygon, starting with     *         0.     */    public int addPoint(int x, int y, int position) {        return addPoint(new OffsetGrabPoint(x, y), position);    }    /**     * Add a point at a certain point in the polygon coordinate list.     * If the position is less than zero, the point will be the     * starting point. If the position is greater than the list of     * current points, the point will be added to the end of the poly.     * This method is convenient because it lets you define the     * GrabPoint object to use for the node, in case you need a     * special type of GrabPoint.     *      * @param gp the GrabPoint set to the screen coordinates of the     *        point to be added.     * @return the index for the point in the polygon, starting with     *         0.     */    public int addPoint(GrabPoint gp) {        return addPoint(gp, Integer.MAX_VALUE);    }    /**     * Add a point at a certain point in the polygon coordinate list.     * If the position is less than zero, the point will be the     * starting point. If the position is greater than the list of     * current points, the point will be added to the end of the poly.     * This method is convenient because it lets you define the     * GrabPoint object to use for the node, in case you need a     * special type of GrabPoint.     *      * @return the index for the point in the polygon, starting with     *         0.     */    public int addPoint(GrabPoint gp, int position) {        if (gp == null) {            return -1;        }        int x = gp.getX();        int y = gp.getY();        int renderType = poly.getRenderType();        if (renderType == OMGraphic.RENDERTYPE_LATLON) {            Debug.message("eomg",                    "EditableOMPoly: adding point to lat/lon poly");            if (projection != null) {                float[] ll = poly.getLatLonArray();                int actualPosition = (position == Integer.MAX_VALUE ? ll.length                        : position * 2);                LatLonPoint llpnt = projection.inverse(x, y);                if (Debug.debugging("eomp")) {                    Debug.output("EditableOMPoly: adding point to lat/lon poly at "                            + x + ", " + y + ": " + llpnt + ", at the end of ");                    for (int j = 0; j < ll.length; j += 2) {                        Debug.output(ll[j] + ", " + ll[j + 1]);                    }                }                float[] newll = new float[ll.length + 2];                if (actualPosition >= ll.length) {                    // Put the new points at the end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品欧美一二99| 秋霞成人午夜伦在线观看| 8x8x8国产精品| 成人av电影观看| 五月天激情综合网| 亚洲视频一区在线| 日韩欧美精品在线视频| 欧美专区日韩专区| 成人免费视频免费观看| 日韩成人精品在线| 亚洲激情男女视频| 中文字幕欧美激情一区| 日韩欧美二区三区| 欧美日韩视频专区在线播放| 成年人国产精品| 黄页视频在线91| 五月天婷婷综合| 亚洲精品成a人| 国产欧美一区二区三区在线看蜜臀| 欧美精品 日韩| 91麻豆6部合集magnet| 国产成人福利片| 精品亚洲aⅴ乱码一区二区三区| 亚洲高清免费视频| 一区二区三区91| 1区2区3区国产精品| 中文欧美字幕免费| 久久九九久精品国产免费直播| 6080亚洲精品一区二区| 在线免费观看视频一区| 91免费视频观看| 99国产精品久久久久久久久久久 | 亚洲国产另类av| 亚洲欧美激情小说另类| 国产精品毛片久久久久久| 国产亚洲福利社区一区| 精品国精品国产尤物美女| 91精品国产一区二区三区| 欧美日韩免费观看一区三区| 91成人免费在线视频| 91热门视频在线观看| 97精品国产97久久久久久久久久久久 | 激情文学综合网| 久久99深爱久久99精品| 国内外成人在线| 九九**精品视频免费播放| 毛片一区二区三区| 精品一区在线看| 国模套图日韩精品一区二区| 国产在线精品一区二区三区不卡| 捆绑调教一区二区三区| 精品一二线国产| 国产91丝袜在线18| 波多野结衣在线一区| 99久久精品国产麻豆演员表| 99久久精品久久久久久清纯| 91国偷自产一区二区开放时间 | 欧美一区二区三区在线电影 | 国产丝袜美腿一区二区三区| 国产精品国产自产拍在线| 综合自拍亚洲综合图不卡区| 亚洲免费av观看| 亚洲小少妇裸体bbw| 天天做天天摸天天爽国产一区| 免费人成在线不卡| 国产高清一区日本| 91社区在线播放| 欧美日韩精品欧美日韩精品一| 日韩一区二区三区高清免费看看| 久久久一区二区三区捆绑**| 国产精品久久久久久久久免费相片 | 国产精品一区免费在线观看| 国产成人精品三级麻豆| 在线欧美日韩精品| 精品欧美乱码久久久久久| 国产欧美精品一区二区色综合朱莉| 亚洲人成影院在线观看| 日本欧美韩国一区三区| 高清国产午夜精品久久久久久| 成a人片国产精品| 欧美一区三区四区| 国产欧美一区二区在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 免费视频最近日韩| 成人成人成人在线视频| 3d成人h动漫网站入口| 久久久久国色av免费看影院| 一区二区三区免费网站| 九九精品一区二区| 一本大道久久a久久综合| 欧美一区二区三区免费| 国产精品理论在线观看| 免费av网站大全久久| 99久久综合99久久综合网站| 制服.丝袜.亚洲.中文.综合| 国产精品国产自产拍高清av| 日韩成人免费看| 91久久精品网| 久久精品人人做人人综合 | 欧美性受xxxx黑人xyx性爽| 欧美不卡视频一区| 亚洲综合色网站| 成人激情黄色小说| 欧美成人国产一区二区| 国产精品久久久久久久久久免费看| 麻豆freexxxx性91精品| 欧美日韩三级在线| 中文字幕视频一区| 国产精品一二一区| 日韩美女一区二区三区四区| 一区二区欧美精品| 91色.com| 中文字幕在线视频一区| 国产一区二区三区蝌蚪| 日韩精品一区二| 日日嗨av一区二区三区四区| 色婷婷av一区二区三区gif| 国产欧美日韩三级| 国产主播一区二区三区| 欧美电视剧免费全集观看| 亚洲va韩国va欧美va精品| 欧洲av一区二区嗯嗯嗯啊| 国产精品久久久久一区二区三区| 国产精品亚洲成人| 久久久久久亚洲综合影院红桃 | 国产一区二区在线看| 91在线无精精品入口| 国产欧美一区二区精品婷婷| 免费成人性网站| 欧美色倩网站大全免费| 国产精品久久久久久久久图文区| 岛国精品一区二区| www精品美女久久久tv| 日韩电影免费在线观看网站| 欧美丝袜丝交足nylons| 亚洲精品亚洲人成人网在线播放| 不卡av在线网| 国产精品国产自产拍在线| 国产精品99久久久久| 欧美本精品男人aⅴ天堂| 青青草97国产精品免费观看| 欧美日韩你懂得| 亚洲18女电影在线观看| 欧美三级日韩三级| 久久久久亚洲蜜桃| 丁香另类激情小说| 久久美女高清视频| 国产乱妇无码大片在线观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 一本一道久久a久久精品综合蜜臀| 国产人妖乱国产精品人妖| 国内精品久久久久影院色| 日韩欧美中文一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 在线亚洲欧美专区二区| 亚洲线精品一区二区三区八戒| 色哟哟精品一区| 亚洲宅男天堂在线观看无病毒 | 欧美日韩国产天堂| 久久精品国产99| 精品国产91乱码一区二区三区| 爽好久久久欧美精品| 日韩一区二区三区三四区视频在线观看| 亚洲综合视频在线观看| 欧美高清你懂得| 蜜桃在线一区二区三区| 精品久久久网站| 奇米影视在线99精品| 这里只有精品视频在线观看| 美女一区二区久久| 日韩一级片在线播放| jvid福利写真一区二区三区| 亚洲人成亚洲人成在线观看图片| 色久优优欧美色久优优| 亚洲电影视频在线| 久久婷婷一区二区三区| 国产成人精品一区二区三区四区 | 一区二区三区国产| 91精品国产色综合久久不卡电影| 蜜桃视频在线一区| 国产精品视频线看| 在线中文字幕不卡| 日韩精彩视频在线观看| 国产精品久久久久久久午夜片| 色哟哟在线观看一区二区三区| 丝袜亚洲另类欧美综合| 精品国内片67194| 色一情一伦一子一伦一区| 热久久免费视频| 国产亚洲一二三区| 91久久国产最好的精华液| 国产一区二区看久久| 伊人一区二区三区| 欧美成人aa大片| 91小视频免费观看| 国产成人在线看| 亚洲一区二区高清| 久久尤物电影视频在线观看| 色呦呦国产精品| 成人美女视频在线观看|