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

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

?? areatable.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
字號:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/vpf/AreaTable.java,v $// $Revision: 1.3.2.1 $ $Date: 2004/10/14 18:27:20 $ $Author: dietrick $// **********************************************************************package com.bbn.openmap.layer.vpf;import java.util.*;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.io.FormatException;/** * Read VPF format edge, face, and ring tables to generate filled * polygon graphics for OpenMap. */public class AreaTable extends PrimitiveTable {    /** the ring table for the tile we are working on */    final private DcwRecordFile rings;    /** the edge table for the tile we are working on */    final private EdgeTable edges;    /** if the edgetable is private or shared */    final private boolean privateEdgeTable;    /** the column number of our ring ID column */    final private int ringIDColumn;    /** the column number of our face ID column */    final private int faceIDColumn;    /** the column number of our start_edge column */    final private int ringStartColumn;    /** TilingAdapters used to retrieve edge table information */    final private TilingAdapter edgeRightFaceAdapter, edgeLeftFaceAdapter,            edgeRightEdgeAdapter, edgeLeftEdgeAdapter;    /**     * Construct an AreaTable for a tile.     *      * @param cov the coverage table that is our "parent"     * @param edg the edge table for the same tile as us (can be null)     * @param tile the tile to parse     * @exception FormatException if something goes wrong reading the     *            area     */    public AreaTable(CoverageTable cov, EdgeTable edg, TileDirectory tile)            throws FormatException {        super(cov, tile, Constants.faceTableName);        ringIDColumn = whatColumn(Constants.FAC_RINGPTR);        privateEdgeTable = (edg == null);        edges = privateEdgeTable ? new EdgeTable(cov, tile) : edg;        edgeRightFaceAdapter = edges.getRightFaceTilingAdapter();        edgeLeftFaceAdapter = edges.getLeftFaceTilingAdapter();        edgeRightEdgeAdapter = edges.getRightEdgeTilingAdapter();        edgeLeftEdgeAdapter = edges.getLeftEdgeTilingAdapter();        if (edges.topologyLevel() != 3) {            throw new FormatException("AreaTable: need level 3 topology: "                    + edges.topologyLevel());        }        rings = new DcwRecordFile(cov.getDataPath() + tile.getPath()                + Constants.ringTableName + (cov.appendDot ? "." : ""));        if ((ringStartColumn = rings.whatColumn(Constants.RNG_STARTEDGE)) == -1) {            throw new FormatException("ring has no start edge: "                    + rings.filename);        }        if ((faceIDColumn = rings.whatColumn(Constants.RNG_FACEID)) == -1) {            throw new FormatException("ring has no face_id: " + rings.filename);        }    }    /**     * Close the files associated with this tile. If an edgetable was     * passed to the constructor, that table is NOT closed. If this     * instance created its own edgetable, it IS closed.     */    public void close() {        if (privateEdgeTable) {            edges.close();        }        rings.close();        super.close();    }    /**     * Computes the full set of points that determine the edge of the     * area.     *      * @param facevec a row from the VPF face table for this area     * @param allLLPoints a List that gets modified to contain     *        CoordFloatString objects defining the area.     *        CoordFloatString objects with a negative element count     *        (e.g. -3) contain the absolute value of the count (e.g.     *        3), but must be traversed in reverse order.     * @return the total number of points that define the polygon     * @exception FormatException may throw FormatExceptions     */    public int computeEdgePoints(List facevec, List allLLPoints)            throws FormatException {        int ring_ptr = ((Number) facevec.get(ringIDColumn)).intValue();        List ring1 = new ArrayList(rings.getColumnCount());        rings.getRow(ring1, ring_ptr);        int fac_id = ((Number) ring1.get(faceIDColumn)).intValue();        int startedgeid = ((Number) ring1.get(ringStartColumn)).intValue();        if (startedgeid <= 0) {            return 0;        }        int nextedgeid = startedgeid;        boolean firsttime = true;        allLLPoints.clear();        int polySize = 0;        int prev_node = -1;        final List edge = new ArrayList(edges.getColumnCount());        do {            edges.getRow(edge, nextedgeid);            int start_node = edges.getStartNode(edge);            int end_node = edges.getEndNode(edge);            int rht_face = edgeRightFaceAdapter.getPrimId(edge);            int lft_face = edgeLeftFaceAdapter.getPrimId(edge);            int right_edge = edgeRightEdgeAdapter.getPrimId(edge);            int left_edge = edgeLeftEdgeAdapter.getPrimId(edge);            if (firsttime) {                prev_node = start_node;                firsttime = false;            }            //Debug.message("dcwSpecialist",            //              "edge: " + nextedgeid + " start->end: "            //              + start_node + "->" + end_node);            CoordFloatString cfs = edges.getCoordinates(edge);            if ((fac_id == rht_face) && (fac_id == lft_face)) {                if (start_node == prev_node) {                    nextedgeid = right_edge;                    prev_node = end_node;                } else if (end_node == prev_node) {                    nextedgeid = left_edge;                    prev_node = start_node;                } else {                    throw new FormatException(" node matching assertion failed ");                }            } else if (fac_id == rht_face) {                nextedgeid = right_edge;                prev_node = end_node;                polySize += cfs.tcount;                allLLPoints.add(cfs);            } else if (fac_id == lft_face) { //reverse direction                nextedgeid = left_edge;                prev_node = start_node;                polySize += cfs.tcount;                cfs.tcount *= -1;// flag reverse                allLLPoints.add(cfs);            } else {                throw new FormatException("Node Assertion failed");            }        } while (nextedgeid != startedgeid);        return polySize;    }    /**     * Parse the area records for this tile, calling     * warehouse.createArea once for each record.     *      * @param warehouse the warehouse used for createArea calls (must     *        not be null)     * @param dpplat threshold for latitude thinning (passed to     *        warehouse)     * @param dpplon threshold for longitude thinngin (passed to     *        warehouse)     * @param ll1 upperleft of selection region (passed to warehouse)     * @param ll2 lowerright of selection region (passed to warehouse)     * @see VPFGraphicWarehouse#createArea     */    public void drawTile(VPFGraphicWarehouse warehouse, float dpplat,                         float dpplon, LatLonPoint ll1, LatLonPoint ll2) {        try {            for (List area = new ArrayList(getColumnCount()); parseRow(area);) {                warehouse.createArea(covtable,                        this,                        area,                        ll1,                        ll2,                        dpplat,                        dpplon);            }        } catch (FormatException f) {            System.out.println("Exception: " + f.getClass() + " "                    + f.getMessage());        }    }    /**     * Use the warehouse to create a graphic from a feature in the     * AreaTable.     *      * @param warehouse the warehouse used for createArea calls (must     *        not be null)     * @param dpplat threshold for latitude thinning (passed to     *        warehouse)     * @param dpplon threshold for longitude thinngin (passed to     *        warehouse)     * @param ll1 upperleft of selection region (passed to warehouse)     * @param ll2 lowerright of selection region (passed to warehouse)     * @param area a List containing the AreaTable row contents.     * @param featureType the string representing the feature type, in     *        case the warehouse wants to do some intelligent     *        rendering.     * @see VPFGraphicWarehouse#createEdge     */    public void drawFeature(VPFFeatureWarehouse warehouse, float dpplat,                            float dpplon, LatLonPoint ll1, LatLonPoint ll2,                            List area, String featureType) {        if (warehouse == null) {            return;        }        warehouse.createArea(covtable,                this,                area,                ll1,                ll2,                dpplat,                dpplon,                featureType);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女在线一区二区| 一区精品在线播放| 美女精品一区二区| 欧美精品一卡二卡| 免费观看91视频大全| 欧美sm美女调教| 国产毛片精品国产一区二区三区| 日韩免费电影网站| 国产成人8x视频一区二区 | 一区在线观看视频| 色综合天天综合色综合av| 亚洲免费在线看| 欧美三级视频在线播放| 免费观看在线综合色| 久久在线观看免费| 成人黄色777网| 亚洲福利视频一区二区| 欧美成人精品福利| 99视频精品免费视频| 亚洲综合网站在线观看| 91麻豆精品国产无毒不卡在线观看| 日本不卡视频一二三区| 国产日韩欧美精品在线| 在线一区二区三区| 美女视频一区在线观看| 欧美激情一区二区三区| 色婷婷亚洲一区二区三区| 三级精品在线观看| 久久蜜桃一区二区| 欧美无砖砖区免费| 国产综合久久久久影院| 亚洲精品网站在线观看| 日韩你懂的在线观看| av在线不卡网| 麻豆一区二区三| 国产精品国产三级国产专播品爱网 | 欧洲国内综合视频| 国产麻豆精品在线| 亚洲亚洲精品在线观看| 久久久蜜桃精品| 欧美日韩精品欧美日韩精品一综合 | 9191久久久久久久久久久| 国产精品一区在线观看乱码 | 亚洲香肠在线观看| 国产亚洲欧美一区在线观看| 欧美色电影在线| a4yy欧美一区二区三区| 蜜臀av一区二区三区| 一级中文字幕一区二区| 欧美激情一区三区| 欧美电影免费提供在线观看| 99麻豆久久久国产精品免费优播| 免费看欧美女人艹b| 一区二区三区四区av| 中文字幕欧美国产| 2020国产精品| 91精品福利在线一区二区三区| 一本大道av伊人久久综合| 日韩精品一区二区三区视频在线观看| aaa国产一区| 国产成人免费在线视频| 精品一区精品二区高清| 日韩电影免费在线| 亚洲成人综合在线| 亚洲人成在线播放网站岛国 | 中文字幕第一区| 欧美大片国产精品| 91精品国产综合久久香蕉麻豆 | 精品久久久久一区| 欧美日韩黄色影视| 欧美日本一道本在线视频| 99国产精品久久| av影院午夜一区| 成人免费视频网站在线观看| 国产精品中文字幕日韩精品| 韩国一区二区在线观看| 免费成人av在线播放| 夜色激情一区二区| 一区二区三区四区乱视频| 亚洲天堂成人网| 亚洲免费av高清| 一区二区三区四区不卡视频| 亚洲影视在线播放| 亚洲第一综合色| 日韩激情视频在线观看| 日日夜夜一区二区| 捆绑调教美女网站视频一区| 日本不卡视频在线| 国产一区二区三区观看| 国产一区二区h| 国产成人精品影视| 99久久99久久精品免费看蜜桃| 99精品视频在线播放观看| 91麻豆视频网站| 欧美色图12p| 日韩免费视频一区二区| 久久久久久久综合狠狠综合| 欧美激情一区二区三区四区| 1000部国产精品成人观看| 亚洲免费在线看| 午夜精品一区在线观看| 久久99精品国产麻豆婷婷洗澡| 国产美女精品一区二区三区| 国产69精品一区二区亚洲孕妇| 91色porny在线视频| 欧美精品99久久久**| 久久久亚洲高清| 日韩毛片精品高清免费| 无码av免费一区二区三区试看 | 五月婷婷色综合| 麻豆国产精品777777在线| 国产91精品在线观看| 91激情在线视频| 欧美电影免费观看高清完整版 | 日韩一区二区视频在线观看| 久久精品在线免费观看| 亚洲欧美色图小说| 美脚の诱脚舐め脚责91 | 美女在线一区二区| 成人av网址在线观看| 欧美精品国产精品| 国产精品美女久久久久久| 亚洲曰韩产成在线| 国产中文字幕一区| 在线免费观看日本欧美| 久久久精品中文字幕麻豆发布| 亚洲伦理在线精品| 激情久久久久久久久久久久久久久久| va亚洲va日韩不卡在线观看| 欧美日本一区二区三区| 国产精品全国免费观看高清 | 国产精品国产三级国产a| 亚洲成人动漫在线观看| 丰满放荡岳乱妇91ww| 91精品国产91久久久久久一区二区| 国产精品久久一级| 麻豆91在线看| 欧洲另类一二三四区| 国产日韩高清在线| 美女在线视频一区| 国产欧美一区二区精品忘忧草 | 日本韩国一区二区| 久久婷婷久久一区二区三区| 亚洲综合激情小说| www.亚洲激情.com| 久久久青草青青国产亚洲免观| 日韩精品一卡二卡三卡四卡无卡| 成人高清视频在线| 久久精品夜色噜噜亚洲aⅴ| 日韩国产成人精品| 在线观看免费视频综合| 综合久久久久久| 粉嫩绯色av一区二区在线观看| 日韩精品自拍偷拍| 日韩高清中文字幕一区| 欧美亚洲丝袜传媒另类| 亚洲欧洲av色图| 国产不卡一区视频| 久久精品免视看| 国产一区二区三区观看| 精品国产伦一区二区三区观看方式 | 久久av老司机精品网站导航| 欧美日韩成人在线一区| 亚洲国产视频在线| 欧美色手机在线观看| 亚洲精品国产精品乱码不99| 成人av免费在线观看| 中文字幕免费不卡| 成人精品鲁一区一区二区| 国产无一区二区| 国产激情91久久精品导航 | 国产亚洲精品福利| 国产在线国偷精品产拍免费yy| 精品国产露脸精彩对白| 麻豆精品在线播放| 欧美电影免费观看高清完整版 | 老司机精品视频导航| 欧美大肚乱孕交hd孕妇| 激情六月婷婷久久| 久久精品在这里| 成人动漫一区二区| 成人欧美一区二区三区小说| 91婷婷韩国欧美一区二区| 一区二区三区高清在线| 欧美精选在线播放| 蜜桃av噜噜一区| 久久久国产精品午夜一区ai换脸| 粉嫩av一区二区三区| 中文字幕在线不卡国产视频| 91亚洲精品久久久蜜桃| 亚洲高清视频中文字幕| 日韩欧美综合在线| 国产剧情一区在线| 亚洲欧美日韩精品久久久久| 欧美色图一区二区三区| 免费成人av在线| 欧美国产激情一区二区三区蜜月| 色综合天天综合网天天看片| 午夜影院在线观看欧美| 欧美tk丨vk视频|