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

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

?? libraryselectiontable.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************// // <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/LibrarySelectionTable.java,v $// $Revision: 1.9.2.3 $ $Date: 2005/08/09 21:17:52 $ $Author: dietrick $// **********************************************************************package com.bbn.openmap.layer.vpf;import java.io.File;import java.util.ArrayList;import java.util.Enumeration;import java.util.HashMap;import java.util.Hashtable;import java.util.Iterator;import java.util.List;import java.util.Map;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.io.BinaryFile;import com.bbn.openmap.io.FormatException;import com.bbn.openmap.util.Debug;/** * Reads the VPF LibraryAttribute table and constructs * CoverageAttributeTables for each of the library coverages (north * america, browse, etc) that exist. *  * <p> * NOTE: This class maintains a whole bunch of cached information, and * also hangs onto references to classes that cache even more * information. When using this class, you are much better off sharing * an instance of this class, rather than creating multiple * instantiations of it for the same VPF data directory. *  * @see CoverageAttributeTable */public class LibrarySelectionTable {    /** cutoff scale for browse coverage. */    public final static int DEFAULT_BROWSE_CUTOFF = 31000000;    protected int BROWSE_CUTOFF = DEFAULT_BROWSE_CUTOFF;    /**     * the names of the VPF libraries listed in the library attribute     * table     */    //private String libraryname[] = null; //library [i]    /** the bounding rectangle of the respective libraries */    private Map boundrec = new HashMap();//bounding rect as [W,S,E,N]    /** the CoverageAttributeTables corresponding to the different libs */    private Map CATs = new HashMap();    /** the names of the lat columns */    final private static String LATColumns[] = { Constants.LAT_LIBNAME,            Constants.LAT_XMIN, Constants.LAT_YMIN, Constants.LAT_XMAX,            Constants.LAT_YMAX };    /** the expected schema types for the library attribute table */    final private static char LATschematype[] = { 'T', 'F', 'F', 'F', 'F' };    /** the expected schema lengths for the library attribute table */    final private static int LATschemalength[] = { -1 /* 8 */, 1, 1, 1, 1 };    /** the name of the database */    private String databaseName;    /** the database description of itself */    private String databaseDesc;    /**     * Construct a LibrarySelectionTable without a path to data.     */    public LibrarySelectionTable() {}    /**     * Construct a LibrarySelectionTable with a path to data.     *      * @param vpfpath the path to the base data directory; the file     *        opened is <code>vpfpath</code> /lat.     * @exception FormatException some error was encountered while     *            trying to handle the file.     */    public LibrarySelectionTable(String vpfpath) throws FormatException {        addDataPath(vpfpath);    }    /**     * Construct a LibrarySelectionTable with a path to data.     *      * @param vpfpaths the paths to the data directories; the file     *        opened is <code>vpfpath</code> /lat.     * @exception FormatException some error was encountered while     *            trying to handle the file.     */    public LibrarySelectionTable(String vpfpaths[]) throws FormatException {        for (int i = 0; i < vpfpaths.length; i++) {            addDataPath(vpfpaths[i]);        }    }    /**     * Set the cutoff scale where if the map scale number is larger     * (smaller overall map scale), the coverage won't be returned.     * For example, if the scale cutoff is 30000000, if the map scale     * is 1:31000000, no map data will be returned.     */    public void setCutoffScale(int scale) {        BROWSE_CUTOFF = scale;    }    /**     * Get the cutoff scale where data will be retrieved.     */    public int getCutoffScale() {        return BROWSE_CUTOFF;    }    /**     * add a path to LibrarySelectionTable. Adding different types of     * VPF libraries to the same LST is likely to cause trouble. (e.g.     * it would be bad to add both DCW and VMAP paths to the same LST.     * adding each DCW disk separately is why this method exists.)     *      * @param vpfpath the path to the base DCW directory; the file     *        opened is <code>vpfpath</code> /lat.     * @exception FormatException some error was encountered while     *            trying to handle the file.     */    public void addDataPath(String vpfpath) throws FormatException {        if (Debug.debugging("vpf")) {            Debug.output("LST.addDataPath(" + vpfpath + ")");        }        // Figure out how files names should be constructed...        boolean addSlash = true;        if (vpfpath.endsWith("/") || vpfpath.endsWith(File.separator)) {            addSlash = false;        }        String latf = vpfpath + (addSlash ? "/" : "") + "lat";        String dhtf = vpfpath + (addSlash ? "/" : "") + "dht";        if (!BinaryFile.exists(latf)) {            latf = latf + ".";            dhtf = dhtf + ".";        }        DcwRecordFile latrf = new DcwRecordFile(latf);        DcwRecordFile dhtrf = new DcwRecordFile(dhtf);        List databaseVec = dhtrf.parseRow();        int dcol = dhtrf.whatColumn("database_name");        if (dcol != -1) {            databaseName = (String) databaseVec.get(dcol);        }        dcol = dhtrf.whatColumn("database_desc");        if (dcol != -1) {            databaseDesc = (String) databaseVec.get(dcol);        }        dhtrf.close();        dhtrf = null;        int latcols[] = latrf.lookupSchema(LATColumns,                true,                LATschematype,                LATschemalength,                false);        Debug.message("vpf", "lst.adp: looked up schema");        for (List l = new ArrayList(latrf.getColumnCount()); latrf.parseRow(l);) {            String lname = ((String) l.get(latcols[0])).toLowerCase();            float br[] = new float[] {                    ((Float) l.get(latcols[1])).floatValue(),                    ((Float) l.get(latcols[2])).floatValue(),                    ((Float) l.get(latcols[3])).floatValue(),                    ((Float) l.get(latcols[4])).floatValue() };            try {                CoverageAttributeTable table = new CoverageAttributeTable(vpfpath, lname);                CATs.put(lname, table);                boundrec.put(lname, br);                if (Debug.debugging("vpf")) {                    Debug.output(lname + " " + br[0] + " " + br[1] + " "                            + br[2] + " " + br[3]);                }            } catch (FormatException fe) {                if (Debug.debugging("vpf")) {                    Debug.output("*****\nVPFLayer.LST: Couldn't create CoverageAttributeTable for "                            + vpfpath                            + " "                            + lname                            + " "                            + fe.getMessage()                            + "\n--- Not a problem if you have multiple paths, and "                            + lname + " is included in another path ---\n*****");                    fe.printStackTrace();                } else {                    Debug.output("VPFLayer.LST: CAT discrepancy (run with -Ddebug.vpf for more details)");                }            }        }        latrf.close();        latrf = null;    }    /**     * Return the list of libraries that this database has.     *      * @return the list of libraries. for DCW, this is typically     *         NOAMER, BROWSE, etc.     */    public String[] getLibraryNames() {        return (String[]) CATs.keySet().toArray(Constants.EMPTY_STRING_ARRAY);    }    /**     * Return the name of the database we are reading from.     */    public String getDatabaseName() {        return databaseName;    }    /**     * Return the description of the database we are reading from.     */    public String getDatabaseDescription() {        return databaseDesc;    }    /**     * Return the coverage attribute table (list of coverages     * available for the given library) for the given library name.     *      * @param library the name of the library to get the CAT for     * @return the CoverageAttributeTable requested (null if the     *         library requested doesn't exist in the database)     * @exception FormatException exceptions from opening the CAT for     *            the library     */    public CoverageAttributeTable getCAT(String library) throws FormatException {        return (CoverageAttributeTable) CATs.get(library);    }    /**     *       */    public void drawTile(int scale, int screenwidth, int screenheight,                         String covname, VPFGraphicWarehouse warehouse,                         LatLonPoint ll1, LatLonPoint ll2) {        if (Debug.debugging("vpf")) {            Debug.output("Library selection table coverage: " + covname);            Debug.output("Library selection table - edges: "                    + warehouse.drawEdgeFeatures());            Debug.output("Library selection table - text: "                    + warehouse.drawTextFeatures());            Debug.output("Library selection table - areas: "                    + warehouse.drawAreaFeatures());            Debug.output("Warehouse: " + warehouse);            Debug.output("Warehouse: cutoff scale " + BROWSE_CUTOFF);        }        // handle Dateline        if ((scale < BROWSE_CUTOFF)                && (ll1.getLongitude() > ll2.getLongitude())) {            drawTile(scale,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一级片在线观看| 91精品国产综合久久香蕉的特点| 久久蜜桃一区二区| 久久国产精品无码网站| 日韩欧美中文字幕精品| 美国一区二区三区在线播放| 日韩视频一区二区| 韩国一区二区视频| 26uuu久久天堂性欧美| 国产精品18久久久久久vr| 国产欧美在线观看一区| 99re在线视频这里只有精品| 亚洲免费观看高清完整| 欧美精品一卡两卡| 久久精品国产久精国产| 亚洲国产精品精华液2区45| 不卡av免费在线观看| 亚洲精品国产一区二区精华液| 欧美视频一二三区| 精品制服美女丁香| 国产精品丝袜一区| 欧美亚洲图片小说| 理论片日本一区| 久久精品免视看| 日本精品裸体写真集在线观看| 亚洲高清视频中文字幕| 精品免费视频.| 91麻豆国产在线观看| 亚洲1区2区3区视频| 国产三级一区二区三区| 91丨porny丨国产入口| 亚洲r级在线视频| 欧美精彩视频一区二区三区| 色呦呦网站一区| 国内精品不卡在线| 亚洲欧美日韩中文字幕一区二区三区| 欧美美女网站色| 国产69精品一区二区亚洲孕妇| 一区二区三区在线免费视频| 精品国产91洋老外米糕| 色婷婷精品久久二区二区蜜臂av| 久久精品久久精品| 一区二区三区色| 久久精品欧美一区二区三区不卡| 欧美视频精品在线| 不卡的电视剧免费网站有什么| 日本人妖一区二区| 亚洲视频一二三区| 国产午夜精品福利| 69堂亚洲精品首页| 91视频.com| 国产成人精品免费看| 丝袜美腿高跟呻吟高潮一区| 久久综合狠狠综合久久综合88| 在线一区二区三区做爰视频网站| 国产精品69毛片高清亚洲| 日韩—二三区免费观看av| 亚洲柠檬福利资源导航| 国产婷婷色一区二区三区四区| 欧美伦理电影网| 91麻豆免费看片| 福利电影一区二区三区| 麻豆国产精品777777在线| 亚洲国产精品久久不卡毛片| 中文字幕在线不卡一区二区三区| 久久色在线观看| 日韩免费看的电影| 日韩视频在线你懂得| 91精品久久久久久久久99蜜臂| 在线视频国内一区二区| 91美女片黄在线观看91美女| 国产不卡在线播放| 国产·精品毛片| 国产精品一二三四区| 精品一区二区影视| 麻豆91在线播放免费| 丝袜美腿亚洲一区二区图片| 天使萌一区二区三区免费观看| 亚洲国产乱码最新视频| 亚洲国产欧美在线| 婷婷亚洲久悠悠色悠在线播放| 亚洲国产精品久久艾草纯爱| 午夜婷婷国产麻豆精品| 亚洲va欧美va国产va天堂影院| 丝袜亚洲另类欧美| 开心九九激情九九欧美日韩精美视频电影 | 色婷婷亚洲一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 国产成人aaa| av中文字幕一区| aaa亚洲精品一二三区| 91在线丨porny丨国产| 色综合久久综合网| 欧美体内she精高潮| 91麻豆精品国产91| 日韩欧美一区二区视频| 久久久www成人免费无遮挡大片| 久久久精品免费网站| 国产精品久久久久久一区二区三区| 国产精品嫩草影院av蜜臀| 中文字幕在线不卡视频| 亚洲国产成人av好男人在线观看| 日韩电影免费在线| 国产成人午夜视频| 色婷婷精品大在线视频| 欧美一级欧美三级在线观看| 久久先锋影音av鲁色资源| 综合久久给合久久狠狠狠97色| 亚洲一区二区欧美| 久久电影网站中文字幕| 成人黄色综合网站| 欧美三级视频在线| 欧美成人r级一区二区三区| 国产日韩影视精品| 亚洲成人动漫在线免费观看| 久久99精品久久久久久久久久久久| 高清beeg欧美| 欧美日韩国产成人在线免费| 久久女同互慰一区二区三区| 自拍偷自拍亚洲精品播放| 日韩成人精品视频| www.日韩在线| 8v天堂国产在线一区二区| 国产精品私房写真福利视频| 久久久久久久久免费| 亚洲午夜三级在线| 国产aⅴ精品一区二区三区色成熟| 一本大道久久精品懂色aⅴ| 精品国产99国产精品| 一区二区欧美视频| 国产精品一区二区视频| 欧美日韩国产123区| 亚洲国产精品成人综合| 日韩精品一二三区| 色哟哟在线观看一区二区三区| 欧美成人vps| 午夜激情久久久| 91看片淫黄大片一级在线观看| 26uuu国产日韩综合| 亚洲成人动漫在线观看| 99re视频精品| 国产区在线观看成人精品| 污片在线观看一区二区| 色综合久久久久久久久久久| 久久久久久久电影| 美女一区二区三区在线观看| 欧洲精品一区二区| 亚洲欧洲精品一区二区三区不卡| 午夜免费久久看| 一本色道a无线码一区v| 中文字幕一区在线观看| 国产美女视频一区| 欧美一区二区黄| 亚洲成人你懂的| 欧美午夜精品一区| 亚洲男同性恋视频| 99精品在线免费| 中文字幕第一区| 国内外精品视频| 精品国产91九色蝌蚪| 日本欧美在线观看| 欧美二区乱c少妇| 亚洲va欧美va天堂v国产综合| 欧美亚洲高清一区| 亚洲精品免费电影| 色噜噜夜夜夜综合网| 日韩码欧中文字| 91丨porny丨蝌蚪视频| 亚洲色图欧美激情| 91免费在线播放| 亚洲精选免费视频| 色88888久久久久久影院按摩 | 亚洲欧洲制服丝袜| 国产又粗又猛又爽又黄91精品| 欧美第一区第二区| 国模娜娜一区二区三区| 久久精品夜夜夜夜久久| 国产高清在线观看免费不卡| 国产女主播视频一区二区| 国产成人精品免费| 亚洲欧美激情视频在线观看一区二区三区 | 欧美视频在线观看一区二区| 成人夜色视频网站在线观看| 国产精品女同一区二区三区| 99久久久精品免费观看国产蜜| 成人免费一区二区三区在线观看 | 亚洲国产综合在线| 日韩欧美中文字幕精品| 国产精品一二二区| 亚洲桃色在线一区| 欧美色精品天天在线观看视频| 日本欧洲一区二区| 亚洲国产激情av| 97久久人人超碰| 视频在线观看国产精品| 久久久久久久久久久久久久久99| 本田岬高潮一区二区三区| 亚洲成人午夜电影| 久久久久久久精| 欧美三日本三级三级在线播放|