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

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

?? earthquakelayer.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實現(xiàn),可以像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/EarthquakeLayer.java,v $// $RCSfile: EarthquakeLayer.java,v $// $Revision: 1.5.2.2 $// $Date: 2005/08/09 19:21:28 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer;import java.awt.Color;import java.awt.Component;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.util.NoSuchElementException;import java.util.Properties;import java.util.StringTokenizer;import java.util.Vector;import javax.swing.JButton;import javax.swing.JPanel;import com.bbn.openmap.event.MapMouseListener;import com.bbn.openmap.omGraphics.OMGraphic;import com.bbn.openmap.omGraphics.OMGraphicList;import com.bbn.openmap.omGraphics.OMPoint;import com.bbn.openmap.omGraphics.OMText;import com.bbn.openmap.util.Debug;import com.bbn.openmap.util.PaletteHelper;import com.bbn.openmap.util.PropUtils;/** * Get data about recent earthquakes from the USGS finger sites and * display it. * <p> * Debugging information is printed when the OpenMap Viewer is launch * with -Ddebug.earthquake flag. * <P> *  * <pre> *  *   *   # Properties for the Earthquake Layer *   earthquake.sites=&lt;finger site&gt; &lt;finger site&gt; ... *   # in seconds *   earthquake.queryinterval=300 *    *   * </pre> */public class EarthquakeLayer extends OMGraphicHandlerLayer implements        MapMouseListener {    public final static transient String fingerSitesProperty = "sites";    public final static transient String queryIntervalProperty = "queryInterval";    /**     * Sites to finger user the user `quake'.     */    protected String fingerSites[] = { "scec.gps.caltech.edu",            "geophys.washington.edu", "giseis.alaska.edu", "mbmgsun.mtech.edu",            "quake.eas.slu.edu" };    // Old sites    //      "gldfs.cr.usgs.gov",    //      "andreas.wr.usgs.gov",    //      "seismo.unr.edu",    //      "eqinfo.seis.utah.edu",    //      "sisyphus.idbsu.edu",    //      "info.seismo.usbr.gov",    //      "vtso.geol.vt.edu",    //      "tako.wr.usgs.gov",    //      "ldeo.columbia.edu"    /**     * Sites that are actively being queried.     */    protected boolean activeSites[] = new boolean[fingerSites.length];    /** Default to 5 minutes. */    private long fetchIntervalMillis = 300 * 1000;    // lat-lon data of the earthquakes    protected float llData[] = new float[0];    // floating information about the earthquakes    protected String infoData[] = new String[0];    // floating information about the earthquakes    protected String drillData[] = new String[0];    private long lastDataFetchTime = 0;    protected Color lineColor = Color.red;    protected boolean showingInfoLine = false;    /** The layer GUI. */    protected JPanel gui = null;    /**     * Construct an EarthquakeLayer.     */    public EarthquakeLayer() {        activeSites[0] = true;        setProjectionChangePolicy(new com.bbn.openmap.layer.policy.ListResetPCPolicy(this));    }    /**     * Fetch data from finger sites, if needed, generate the     * OMGraphics with the current projection regardless.     */    public synchronized OMGraphicList prepare() {        if (needToRefetchData()) {            parseData(getEarthquakeData());        }        return generateGraphics();    }    /**     * Fetches data if it hasn't been fetched in a while.     */    protected boolean needToRefetchData() {        long now = System.currentTimeMillis();        long last = lastDataFetchTime;        if ((last + fetchIntervalMillis) < now) {            lastDataFetchTime = now;            return true;        }        return false;    }    /**     * Create the graphics.     */    protected OMGraphicList generateGraphics() {        OMGraphicList omgraphics = new OMGraphicList();        OMPoint circ;        OMText text;        int circle_r = 2;        int circle_h = 5;        for (int i = 0, j = 0; i < llData.length; i += 2, j++) {            // grouping            OMGraphicList group = new OMGraphicList(2);            // XY-Circle at LatLonPoint            circ = new OMPoint(llData[i], llData[i + 1], circle_r);            circ.setOval(true);            circ.setFillPaint(lineColor);            group.add(circ);            // Info            text = new OMText(llData[i], llData[i + 1], 0, circle_h + 10, infoData[j], java.awt.Font.decode("SansSerif"), OMText.JUSTIFY_CENTER);            text.setLinePaint(lineColor);            group.add(text);            group.setAppObject(new Integer(j));//remember index            omgraphics.add(group);        }        omgraphics.generate(getProjection(), false);        return omgraphics;    }    /**     * Parse the finger site data.     *      * @param data Vector     */    protected void parseData(Vector data) {        int nLines = data.size();        llData = new float[2 * nLines];        infoData = new String[nLines];        drillData = new String[nLines];        for (int i = 0, j = 0, k = 0; i < nLines; i++) {            String line = (String) data.elementAt(i);            // Read a line of input and break it down            StringTokenizer tokens = new StringTokenizer(line);            String sdate = tokens.nextToken();            String stime = tokens.nextToken();            String slat = tokens.nextToken();            String slon = tokens.nextToken();            if (slon.startsWith("NWSE"))// handle ` ' in LatLon data                slon = tokens.nextToken();            String sdep = tokens.nextToken();            if (sdep.startsWith("NWSE"))// handle ` ' in LatLon data                sdep = tokens.nextToken();            String smag = tokens.nextToken();            String q = tokens.nextToken();            String scomment = tokens.nextToken("\r\n");            if (q.length() > 1) {                scomment = q + " " + scomment;            }            infoData[j] = smag;            drillData[j++] = sdate + " " + stime + " (UTC)  " + slat + " "                    + slon + " " + smag + " " + scomment;            // Remove NESW from lat and lon before converting to float            int west = slon.indexOf("W");            int south = slat.indexOf("S");            if (west >= 0)                slon = slon.replace('W', '\0');            else                slon = slon.replace('E', '\0');            if (south >= 0)                slat = slat.replace('S', '\0');            else                slat = slat.replace('N', '\0');            slon = slon.trim();            slat = slat.trim();            float flat = 0, flon = 0;            try {                flat = new Float(slat).floatValue();                flon = new Float(slon).floatValue();            } catch (NumberFormatException e) {                Debug.error("EarthquakeLayer.parseData(): " + e + " line: "                        + line);            }            // replace West and South demarcations with minus sign            if (south >= 0)                flat = -flat;            if (west >= 0)                flon = -flon;            llData[k++] = flat;            llData[k++] = flon;        }    }    /**     * Get the earthquake data from the USGS. Should be called in a     * SwingWorker thread, or you will freeze the application.     *      * @return Vector containing information from the websites.     */    protected Vector getEarthquakeData() {        Vector linesOfData = new Vector();        Socket quakefinger = null;        PrintWriter output = null;        BufferedReader input = null;        String line;        for (int i = 0; i < activeSites.length; i++) {            // skip sites which aren't on the active list            if (!activeSites[i])                continue;            try {                if (Debug.debugging("earthquake")) {                    Debug.output("Opening socket connection to "                            + fingerSites[i]);                }                quakefinger = new Socket(fingerSites[i], 79);//open                // connection                // to                // finger                // port                quakefinger.setSoTimeout(120 * 1000);// 2 minute                // timeout                output = new PrintWriter(new OutputStreamWriter(quakefinger.getOutputStream()), true);                input = new BufferedReader(new InputStreamReader(quakefinger.getInputStream()), 1);                output.println("/W quake");// use `/W' flag for long                // output            } catch (IOException e) {                Debug.error("EarthquakeLayer.getEarthquakeData(): "                        + "can't open or write to socket: " + e);                continue;            }            try {                // add data lines to list                while ((line = input.readLine()) != null) {                    if (Debug.debugging("earthquake")) {                        Debug.output("EarthquakeLayer.getEarthQuakeData(): "                                + line);                    }                    if (line.length() == 0)                        continue;                    if (!Character.isDigit(line.charAt(0)))                        continue;                    line = hackY2K(line);                    if (line == null)                        continue;                    linesOfData.addElement(line);                }            } catch (IOException e) {                Debug.error("EarthquakeLayer.getEarthquakeData(): "                        + "can't read from the socket: " + e);                if (cancelled) {                    return null;                }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕免费不卡| 欧美三级中文字| 亚洲制服欧美中文字幕中文字幕| 欧美欧美午夜aⅴ在线观看| 国产精品一区专区| 亚洲h在线观看| 国产精品高潮久久久久无| 91精品国产欧美一区二区| 不卡的电视剧免费网站有什么| 免费高清在线一区| 亚洲精品大片www| 国产日韩精品一区二区三区| 在线播放视频一区| 一本久道久久综合中文字幕| 国产精品自在欧美一区| 视频一区二区欧美| 亚洲精品少妇30p| 国产精品精品国产色婷婷| 亚洲精品一区二区三区蜜桃下载 | 成人性生交大片免费看视频在线 | 国产成a人亚洲| 麻豆一区二区在线| 五月天激情小说综合| 中文字幕第一区二区| 精品国产精品网麻豆系列 | 在线观看视频一区二区欧美日韩| 国产乱人伦精品一区二区在线观看| 午夜视频一区二区| 亚洲一区二区3| 一区二区三区中文免费| 亚洲精品第1页| 亚洲精品欧美专区| 亚洲精品乱码久久久久久黑人 | 国产精品久久久久久户外露出| 成人综合婷婷国产精品久久蜜臀 | 91国产免费观看| 99视频在线精品| 成人av资源网站| 国产69精品久久99不卡| 国产成人精品aa毛片| 国产盗摄一区二区三区| 国产伦精一区二区三区| 国产精品亚洲一区二区三区在线| 激情欧美一区二区三区在线观看| 三级欧美在线一区| 日韩av一级电影| 裸体在线国模精品偷拍| 激情亚洲综合在线| 国产不卡在线播放| 成人av在线资源| 色噜噜久久综合| 欧美日韩专区在线| 欧美伦理视频网站| 日韩免费福利电影在线观看| www激情久久| 久久精品夜色噜噜亚洲a∨| 欧美韩国一区二区| 中文字幕在线不卡一区| 亚洲激情网站免费观看| 午夜精品久久久久影视| 麻豆精品在线视频| 国产成人免费在线视频| 成人免费高清视频在线观看| 色综合久久99| 欧美日韩国产综合一区二区三区 | 精品亚洲国产成人av制服丝袜| 久草这里只有精品视频| 国产精品一区在线| 91在线精品秘密一区二区| 欧美亚洲高清一区| 日韩午夜在线影院| 亚洲国产岛国毛片在线| 一区二区三区自拍| 日本欧美一区二区三区乱码| 国产suv一区二区三区88区| 91免费观看国产| 欧美一级日韩不卡播放免费| 精品国产网站在线观看| |精品福利一区二区三区| 亚洲电影欧美电影有声小说| 激情综合网天天干| 色综合天天综合在线视频| 91精品在线观看入口| 欧美国产综合一区二区| 亚洲高清三级视频| 国产一区二区三区电影在线观看| 91网页版在线| 欧美成人video| 亚洲另类春色国产| 精品一区二区三区在线观看| 91在线免费播放| 精品日韩欧美一区二区| 亚洲欧美成人一区二区三区| 美女一区二区三区在线观看| 99精品热视频| 欧美videos中文字幕| 一个色在线综合| 国产在线日韩欧美| 欧美三级三级三级| 中文字幕免费一区| 玖玖九九国产精品| 欧洲视频一区二区| 国产午夜亚洲精品理论片色戒| 亚洲乱码国产乱码精品精98午夜 | 亚洲成人黄色影院| 国产.精品.日韩.另类.中文.在线.播放| 色综合 综合色| 久久久国产精品午夜一区ai换脸| 夜夜精品视频一区二区 | 亚洲一区二区高清| 成人精品在线视频观看| 日韩精品自拍偷拍| 亚洲成人动漫在线免费观看| 91丨九色丨尤物| 国产亚洲精品超碰| 久久66热偷产精品| 日韩一区二区三区观看| 亚洲午夜精品在线| 91视频在线看| 国产精品理伦片| 国产麻豆日韩欧美久久| 欧美大片在线观看一区| 视频一区欧美日韩| 在线观看视频一区二区欧美日韩| 国产精品入口麻豆九色| 国产精品亚洲一区二区三区妖精| 91精品国产麻豆| 五月婷婷色综合| 欧美美女直播网站| 亚洲综合一区二区三区| 色综合天天综合给合国产| 国产精品久久免费看| 成人免费av在线| 国产精品福利一区| 91啪亚洲精品| 亚洲精品成人天堂一二三| 日本久久一区二区| 一区二区三区91| 欧美视频中文字幕| 亚洲一区二区三区中文字幕| 欧洲视频一区二区| 懂色av一区二区三区蜜臀| 制服丝袜中文字幕一区| 日日摸夜夜添夜夜添国产精品| 欧美揉bbbbb揉bbbbb| 亚洲国产一区二区视频| 欧美美女一区二区| 日韩中文欧美在线| 欧美一二三区在线| 精品一区二区精品| 久久新电视剧免费观看| 国产激情一区二区三区四区| 国产欧美一区二区三区网站 | 日韩二区三区四区| 日韩女优视频免费观看| 韩国v欧美v日本v亚洲v| 久久伊人中文字幕| 粉嫩av一区二区三区粉嫩| 亚洲欧洲无码一区二区三区| 色综合色狠狠综合色| 亚洲成人1区2区| 欧美一区二区视频免费观看| 国产综合色精品一区二区三区| 久久精品视频网| 99精品久久免费看蜜臀剧情介绍| 亚洲精品国久久99热| 欧美精品视频www在线观看| 精品一区二区在线视频| 国产精品第一页第二页第三页| 欧美性色aⅴ视频一区日韩精品| 日韩高清不卡一区二区三区| 精品国产乱码久久| 91网站在线播放| 久久精品72免费观看| 中文字幕的久久| 欧美午夜免费电影| 精品午夜久久福利影院| 自拍偷拍亚洲综合| 欧美高清精品3d| 国产成人午夜片在线观看高清观看| 中文字幕一区二区5566日韩| 欧美区在线观看| 成人精品视频.| 午夜精品视频在线观看| 欧美国产亚洲另类动漫| 欧美日韩五月天| 国产suv精品一区二区6| 五月综合激情婷婷六月色窝| 国产午夜久久久久| 欧美日韩国产在线观看| 成人在线视频一区| 日韩国产一区二| 国产精品欧美综合在线| 日韩三级在线观看| 色综合亚洲欧洲| 国产精品综合网| 手机精品视频在线观看| 亚洲天堂精品在线观看| 亚洲精品一区在线观看| 欧美日韩精品系列|