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

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

?? vpfspecialist.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/corba/com/bbn/openmap/layer/specialist/vpf/VPFSpecialist.java,v $// $RCSfile: VPFSpecialist.java,v $// $Revision: 1.4.2.1 $// $Date: 2004/10/14 18:26:33 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.specialist.vpf;import com.bbn.openmap.CSpecialist.*;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.MoreMath;import com.bbn.openmap.layer.specialist.*;import com.bbn.openmap.layer.util.http.HttpServer;import com.bbn.openmap.layer.vpf.*;import com.bbn.openmap.util.Debug;import java.io.File;import java.util.Hashtable;import java.util.StringTokenizer;/** * Implement the Specialist interface so that we can serve graphics to * OpenMap via CORBA. * <p> *  * In the properties file for OpenMap, you can set parameters that * determine what coverages and features are sent back to the * CSpecLayer. Specifically, these parameters are listed in the * staticArgs property as (key, value) pairs. For political boundaries * and coastlines, for instance: * <p> *  * staticArgs=(coverageType, bnd)(featureTypes, edge area) (edge, * polbndl coastl) (area, polbnda) (lineColor, FFFF0000) (fillColor, * FFAAAA66) (draw, edge area) *  * <p> *  * The (draw, edge area) pairing should be used if the user won't have * access to the palette for the CSpecLayer. The palette controls * whether certain feature types are drawn, and by default, areas are * not and need to be turned on in the palette. If you set the draw * key, the feature types listed will be forced to be returned if they * exist. The keys used here should match the featureTypes list, or * not, depending on what you want. *  * <p> *  * The contents of this staticArgs line should reflect the properties * that can be set via the VPFLayer properties. See those javadocs for * more details. */public class VPFSpecialist extends Specialist {    private String dcwpath;    private Hashtable checkboxes = new Hashtable();    private LibrarySelectionTable lst;    private Hashtable comphash = new Hashtable();    public static final String prefix = "VPFSpec";    public static final float altCovScale = 30000000f;    /**     * default constructor is called when we're loading the class     * directly into OpenMap.     */    public VPFSpecialist() {        super("VPFSpecialist", (short) 2, true);        //startHttpServer(0);        initDcwFiles();    }    public VPFSpecialist(LibrarySelectionTable libtab) {        super("VPFSpecialist", (short) 2, true);        //startHttpServer(0);        lst = libtab;    }    public VPFSpecialist(File dcwDataPath) {        super("VPFSpecialist", (short) 2, true);        //startHttpServer(0);        dcwpath = dcwDataPath.getAbsolutePath();        initDcwFiles();    }    public VPFSpecialist(String name) {        super(name, (short) 2, true);    }    public java.util.Properties processTokens(String args, StringBuffer cov,                                              StringBuffer altcov,                                              boolean usealt) {        java.util.StringTokenizer tok = new java.util.StringTokenizer(args, ")");        String token = null;        java.util.Properties props = new java.util.Properties();        // First see if there are parens, otherwise just straight        // coverage types        while (true) {            try {                token = tok.nextToken();                token = token.trim();                if (token.startsWith("(")) {                    // Get the name                    // Remove the open paren                    token = token.substring(1, token.length());                    int comma = token.indexOf(",");                    String key = token.substring(0, comma);                    String value = token.substring(comma + 1, token.length());                    // Remove whitespace                    key = key.trim();                    value = value.trim();                    // Need to set cov or altcov or else props later                    if (key.equals("coverageType")) {                        // Coverage types require special handling,                        // since                        // coverage types get passed back to drawTile                        // routine                        // Check to see if one coverage or two                        int spacedelim = value.indexOf(" ");                        if (spacedelim == -1) {                            // One coverage                            cov.delete(0, cov.length());                            cov = cov.append(value);                            altcov = altcov.delete(0, altcov.length());                            altcov.append("");                        } else {                            // Two coverages                            cov.delete(0, cov.length());                            cov = cov.append(value.substring(0, spacedelim));                            altcov = altcov.delete(0, altcov.length());                            altcov = altcov.append(value.substring(spacedelim + 1,                                    value.length()));                        }                        // Set the property                        props.setProperty(prefix + "." + key, value);                    } else {                        // Not a coverage type, so don't have to                        // fool with cov and altcov                        // Need to check for alt key prefix                        // !! Assumes coverageType has been processed                        // first                        // If there is an alternate coverage and it's                        // required, use it                        if (usealt == true && !altcov.equals("")) {                            if (key.startsWith("alt")) {                                key = key.substring(3, key.length()); // 3 is                                                                      // "alt",                                                                      // remove                                                                      // it                                props.setProperty(prefix + "." + key, value);                            } else {                                // Need alt, not an alt prefix                                continue;                            }                        } else {                            // Alt not necessary                            if (key.startsWith("alt")) {                                // alt key, don't want it                                continue;                            } else {                                props.setProperty(prefix + "." + key, value);                            }                        }                    }                } else {                    // This case is for old style static args, when                    // they                    // were not (key,value) format                    // Find out if there is an alternate coverage                    int spacedelim = token.indexOf(" ");                    if (spacedelim == -1) {                        // No alternate coverage                        cov.delete(0, cov.length());                        cov = cov.append(token);                        altcov = altcov.delete(0, altcov.length());                        altcov.append("");                    } else {                        // Yes, alternate coverage                        cov.delete(0, cov.length());                        cov = cov.append(token.substring(0, spacedelim));                        cov = altcov.delete(0, altcov.length());                        altcov = altcov.append(token.substring(spacedelim + 1,                                token.length()));                    }                }            } catch (java.util.NoSuchElementException nee) {                break;            }        }        return props;    }    public UGraphic[] fillRectangle(                                    com.bbn.openmap.CSpecialist.CProjection p,                                    com.bbn.openmap.CSpecialist.LLPoint ll1,                                    com.bbn.openmap.CSpecialist.LLPoint ll2,                                    java.lang.String staticArgs,                                    org.omg.CORBA.StringHolder dynamicArgs,                                    com.bbn.openmap.CSpecialist.GraphicChange notifyOnChange,                                    String uniqueID) {        try {            LatLonPoint newll1 = new LatLonPoint(ll1.lat, ll1.lon);            LatLonPoint newll2 = new LatLonPoint(ll2.lat, ll2.lon);            /*             * If the we are zoomed out so that we _might_ have the             * entire world on the screen, then let's check to see if             * east and west are approximately equal. If they are,             * change them to -180 and +180 so that we get the entire             * world without having trouble with the floating point             * rounding errors that allow west to be slightly less             * than east (by .00001) and confuse our clipping routines             * into thinking that there should be nothing on the             * screen since nothing falls in that .00001 slice of the             * world.             */            if ((p.scale > 100000000)                    && MoreMath.approximately_equal(ll1.lon, ll2.lon, .01)) {                newll1.setLongitude(-180.0f);                newll2.setLongitude(180.0f);            }            forgetComps(uniqueID);            Debug.message("vpfspecialist", "fillRectangle.. " + staticArgs);            Hashtable dynArgs = parseDynamicArgs(dynamicArgs.value);            VPFSpecialistGraphicWarehouse warehouse = new VPFSpecialistGraphicWarehouse();            CheckButton buttons[] = null;            SCheckBox s = (SCheckBox) checkboxes.get(uniqueID);            if (s == null) {                buttons = new CheckButton[3];                Debug.message("vpfspecialist", "default buttons");                buttons[0] = new CheckButton("Edges", false);                buttons[1] = new CheckButton("Text", false);                buttons[2] = new CheckButton("Area", false);            } else {                Debug.message("vpfspecialist", "palette buttons");                buttons = s.buttons();            }            boolean showEdges = (getHashedValueAsBoolean(dynArgs, DynArgEdges) || buttons[0].checked);            warehouse.setEdgeFeatures(showEdges);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品亚洲日本在线桃色 | 亚洲制服丝袜av| 国产成a人亚洲| 中文字幕成人网| 不卡一卡二卡三乱码免费网站| 国产婷婷精品av在线| 成人做爰69片免费看网站| 中文欧美字幕免费| 91浏览器入口在线观看| 亚洲福利视频导航| 日韩视频免费直播| 国产精品羞羞答答xxdd| 国产精品久久夜| 欧美在线观看一区| 久久99久久99精品免视看婷婷 | 欧洲亚洲国产日韩| 日本不卡不码高清免费观看 | 成人免费在线播放视频| 日本黄色一区二区| 日韩和欧美一区二区| 26uuu成人网一区二区三区| 成人手机电影网| 亚洲在线免费播放| 亚洲精品一线二线三线无人区| 成人精品一区二区三区中文字幕 | 综合欧美亚洲日本| 欧美美女bb生活片| 国产.精品.日韩.另类.中文.在线.播放| 中文字幕欧美国产| 欧美男人的天堂一二区| 国产一区二区剧情av在线| 亚洲最大成人综合| 久久久综合激的五月天| 在线观看www91| 国产成人免费高清| 亚洲综合丁香婷婷六月香| 精品久久久久香蕉网| 91网址在线看| 狠狠色丁香婷婷综合| 亚洲伊人色欲综合网| 久久精品免费在线观看| 欧美日韩亚洲另类| 国产成人在线电影| 蜜臀91精品一区二区三区| 亚洲精品成a人| 国产日韩欧美不卡在线| 日韩一区国产二区欧美三区| av在线播放成人| 国产一区二区三区电影在线观看| 亚洲一级二级三级| 国产精品网站导航| 精品国产在天天线2019| 91成人免费网站| 本田岬高潮一区二区三区| 精品无人码麻豆乱码1区2区| 亚洲影院在线观看| 亚洲欧洲综合另类| 中文av字幕一区| 国产亚洲一本大道中文在线| 欧美一区二区私人影院日本| 色婷婷久久久久swag精品 | 精品一区二区三区在线播放视频| 亚洲成a人v欧美综合天堂下载| 国产精品盗摄一区二区三区| 欧美成人精品福利| 欧美一区二区在线免费观看| 欧美剧情电影在线观看完整版免费励志电影| 99久久亚洲一区二区三区青草| 韩国成人精品a∨在线观看| 日本伊人午夜精品| 日韩精品91亚洲二区在线观看| 亚洲国产成人tv| 亚洲地区一二三色| 亚洲国产精品一区二区久久恐怖片| 亚洲欧美日韩国产另类专区| 国产精品动漫网站| 国产亲近乱来精品视频 | 国产精品久久久一本精品| 精品国产凹凸成av人导航| 91精品在线麻豆| 欧美一区二区成人6969| 日韩一级在线观看| 欧美精品一区二区三区很污很色的| 欧美一二三四区在线| 5858s免费视频成人| 欧美一区二区三区在线观看视频| 欧美高清视频不卡网| 日韩一区二区在线播放| 欧美一区二区三区免费视频| 日韩欧美一级二级三级久久久| 日韩精品一区二区三区四区视频 | 久久久久久久免费视频了| 久久综合中文字幕| 国产欧美在线观看一区| 国产精品久久免费看| 亚洲视频在线一区| 亚洲一区二区视频在线观看| 午夜精品一区在线观看| 久热成人在线视频| 国产成人一区在线| 91污在线观看| 欧美一区二区三区婷婷月色| 久久毛片高清国产| 最近日韩中文字幕| 午夜精品aaa| 国产高清不卡二三区| 色综合久久久网| 日韩欧美另类在线| 欧美国产激情二区三区| 亚洲影视在线播放| 国模少妇一区二区三区| 91在线无精精品入口| 91精品黄色片免费大全| 国产丝袜在线精品| 亚洲第一电影网| 东方aⅴ免费观看久久av| 在线观看国产精品网站| 精品免费视频一区二区| 国产精品蜜臀av| 午夜精品久久久久久久99樱桃| 国产尤物一区二区| 91高清在线观看| 久久网这里都是精品| 一区二区三区日韩| 国产乱人伦偷精品视频不卡| 在线看日韩精品电影| 久久久久久电影| 午夜精品久久久久久不卡8050| 国产成a人亚洲精品| 在线成人av网站| 亚洲视频免费在线| 久草精品在线观看| 欧美视频第二页| 国产精品乱人伦一区二区| 日本欧美一区二区三区| 99国内精品久久| 精品国免费一区二区三区| 亚洲国产精品久久久久婷婷884| 国产资源精品在线观看| 欧美日韩国产天堂| 亚洲欧美乱综合| 成人一区二区三区视频| 日韩无一区二区| 亚洲线精品一区二区三区八戒| 成人免费观看视频| 精品国产乱码久久| 石原莉奈在线亚洲三区| 在线观看视频一区二区| 国产精品麻豆久久久| 老司机精品视频在线| 欧美男人的天堂一二区| 亚洲国产乱码最新视频| 色综合中文综合网| 国产精品美女久久久久久| 国产美女av一区二区三区| 欧美一二三在线| 日本在线播放一区二区三区| 欧美浪妇xxxx高跟鞋交| 亚洲午夜久久久久久久久久久| 97se狠狠狠综合亚洲狠狠| 国产欧美日韩卡一| 国产成人综合自拍| 国产清纯美女被跳蛋高潮一区二区久久w | 国产成人免费高清| 久久久影视传媒| 国产麻豆午夜三级精品| 精品福利av导航| 国模一区二区三区白浆| 久久一留热品黄| 国产成人av电影在线观看| 久久久精品欧美丰满| 久久国产麻豆精品| 欧美精品一区二区三区久久久| 另类调教123区| 国产亚洲一区二区三区在线观看 | 色婷婷久久久亚洲一区二区三区| 亚洲欧美偷拍卡通变态| 91成人看片片| 日本亚洲欧美天堂免费| 日韩一区二区在线观看| 国产一区二区h| 亚洲国产成人一区二区三区| 91色porny蝌蚪| 日韩在线一区二区| 欧美不卡一二三| 国产高清精品久久久久| 亚洲欧洲无码一区二区三区| 色伊人久久综合中文字幕| 香蕉久久一区二区不卡无毒影院| 欧美电影免费观看高清完整版在| 国产在线播精品第三| 亚洲视频在线一区| 欧美精品久久天天躁| 国产最新精品精品你懂的| 国产精品入口麻豆九色| 欧美影院一区二区三区| 精品亚洲成a人| 亚洲视频免费在线| 欧美一区二区三区在线观看 | 欧美日韩国产首页|