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

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

?? llxyview.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/proj/LLXYView.java,v $// $RCSfile: LLXYView.java,v $// $Revision: 1.3.2.1 $// $Date: 2004/10/14 18:27:36 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.proj;import java.awt.Point;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.util.Debug;/** * Implements the LLXY projection. */public class LLXYView extends LLXY {    /**     * The LLXY name.     */    public final static transient String LLXYViewName = "EPSG-4326";    /**     * The LLXY type of projection.     */    public final static transient int LLXYViewType = 6303;    /** The "Helper" class manages user-space */    private LLXYViewHelper helper;    /** User-Space Center in lat/lon */    protected LatLonPoint uCtr;    protected float uCtrLat;    protected float uCtrLon;    /** Screen Origin in pixels (center=0,0) */    protected int sCtrX, sCtrY;    /** User Origin in pixels 0,0 = lat/lon center */    protected int uCtrX;    protected int uCtrY;    protected int dUSX;    /** delta between U and S, X axis */    protected int dUSY;    /** delta between U and S, Y axis */    /**     * Construct a LLXY projection.     *      * @param center LatLonPoint center of projection     * @param scale float scale of projection     * @param width width of screen     * @param height height of screen     */    public LLXYView(LatLonPoint center, float scale, int width, int height) {        super(center, scale, width, height, LLXYViewType);        computeParameters();    }    /**     * Return stringified description of this projection.     *      * @return String     * @see Projection#getProjectionID     */    public String toString() {        return "LLXYView[" + super.toString();    }    /**     * Called when some fundamental parameters change.     * <p>     * Each projection will decide how to respond to this change. For     * instance, they may need to recalculate "constant" paramters     * used in the forward() and inverse() calls.     * <p>     */    protected void computeParameters() {        Debug.message("LLXYView", "LLXYView.computeParameters()");        super.computeParameters();        // compute the offsets        this.hy = height / 2;        this.wx = width / 2;        cLon = ProjMath.radToDeg(ctrLon);        // We have no way of constructing the User Space at anything        // other than 0,0 for now.        if (uCtr == null) {            uCtrLat = (float) 0.0;            uCtrLon = (float) 0.0;            uCtr = new LatLonPoint(uCtrLat, uCtrLon);        }        if (helper == null) {            helper = new LLXYViewHelper(uCtr, scale, width, height);        }        synchronized (helper) {            super.computeParameters();            // Screen stuff            Point temp = new Point();            helper.setAllParams(pixelsPerMeter,                    planetRadius,                    planetPixelRadius,                    planetPixelCircumference,                    minscale,                    maxscale,                    scale,                    scaled_radius,                    width,                    height,                    uCtrLat,                    uCtrLon);            helper.forward(ctrLat, ctrLon, temp, true);            sCtrX = temp.x;            sCtrY = temp.y;            helper.forward(uCtrLat, uCtrLon, temp);            uCtrX = temp.x;            uCtrY = temp.y;            dUSX = sCtrX - uCtrX;            dUSY = sCtrY - uCtrY;        }        Debug.message("LLXYView", "User Center LL: " + uCtrLon + "," + uCtrLat                + " User Center xy: " + uCtrX + "," + uCtrY                + " Screen Center LL: " + ProjMath.radToDeg(ctrLon) + ","                + ProjMath.radToDeg(ctrLat) + " Screen Center xy: " + sCtrX                + "," + sCtrY + " Screen wh: " + width + "x" + height                + " Screen halfwh: " + this.wx + "x" + this.hy + " Delta xy: "                + dUSX + "," + dUSY);    }    /**     * Projects a point from Lat/Lon space to X/Y space.     *      * @param pt LatLonPoint     * @param p Point retval     * @return Point p     */    public Point forward(LatLonPoint pt, Point p) {        // First translate to user-space        helper.forward(pt, p);        // Now translate to screen-space        p.x = p.x + this.wx - dUSX;        p.y = this.hy - p.y + dUSY;        if (Debug.debugging("LLXYViewf")) {            Debug.output("LLXYView.forward(pt.lon_:" + pt.getLongitude()                    + ", pt.lat_:" + pt.getLatitude() + ")\n"                    + "LLXYView.forward   x:" + p.x + ", y:" + p.y);        }        return p;    }    /**     * Forward projects a lat,lon coordinates.     *      * @param lat raw latitude in decimal degrees     * @param lon raw longitude in decimal degrees     * @param p Resulting XY Point     * @return Point p     */    public Point forward(float lat, float lon, Point p) {        // First translate to user-space        helper.forward(lat, lon, p);        // Now translate to screen-space        p.x = p.x + this.wx - dUSX;        p.y = this.hy - p.y + dUSY;        if (Debug.debugging("LLXYViewf")) {            Debug.output("LLXYView.forward(lon:" + lon + ", lat:" + lat + ")\n"                    + "LLXYView.forward   x:" + p.x + ", y:" + p.y + " ctrLon:"                    + cLon + " wx:" + this.wx + " hy:" + this.hy);        }        return p;    }    /**     * Forward projects lat,lon into XY space and returns a Point.     *      * @param lat float latitude in radians     * @param lon float longitude in radians     * @param p Resulting XY Point     * @param isRadian bogus argument indicating that lat,lon     *        arguments are in radians     * @return Point p     */    public Point forward(float lat, float lon, Point p, boolean isRadian) {        // First translate to user-space        helper.forward(lat, lon, p, isRadian);        // Now translate to screen-space        p.x = p.x + this.wx - dUSX;        p.y = this.hy - p.y + dUSY;        if (Debug.debugging("LLXYViewf")) {            Debug.output("LLXYView.forward(lon:" + ProjMath.radToDeg(lon)                    + ", lat:" + ProjMath.radToDeg(lat) + " isRadian:"                    + isRadian + ")\n" + "LLXYView.forward   x:" + p.x + ", y:"                    + p.y + " scale: " + (float) scale);        }        return p;    }    /**     * Inverse project a Point.     *      * @param pt x,y Point     * @param llp resulting LatLonPoint     * @return LatLonPoint llp     */    public LatLonPoint inverse(Point pt, LatLonPoint llp) {        // convert from screen to user coordinates        int x = pt.x - this.wx + dUSX;        int y = this.hy - pt.y + dUSY;        // now convert to world coords        return (helper.inverse(x, y, llp));    }    /**     * Inverse project x,y coordinates into a LatLonPoint.     *      * @param x integer x coordinate     * @param y integer y coordinate     * @param llp LatLonPoint     * @return LatLonPoint llp     * @see Proj#inverse(Point)     */    public LatLonPoint inverse(int x, int y, LatLonPoint llp) {        int tx = x - this.wx + dUSX;        int ty = this.hy - y + dUSY;        if (Debug.debugging("LLXYViewi")) {            // This is only to aid printing....            LatLonPoint tllp = helper.inverse(tx, ty, llp);            Debug.output("xy: " + x + "," + y + " txty: " + tx + "," + ty                    + " llp: " + tllp.getLongitude() + "," + tllp.getLatitude());        }        return (helper.inverse(tx, ty, llp));    }    /**     * Helper class manages "user space"     */    private class LLXYViewHelper extends LLXY {        public LLXYViewHelper(LatLonPoint center, float scale, int width,                int height) {            super(center, scale, width, height, LLXYViewType);        }        public void setAllParams(int hPixelsPerMeter, float hPlanetRadius,                                 float hPlanetPixelRadius,                                 float hPlanetPixelCircumference,                                 float hMinscale, float hMaxscale,                                 float hScale, float hScaled_radius,                                 int hWidth, int hHeight, float hCtrLat,                                 float hCtrLon) {            this.pixelsPerMeter = hPixelsPerMeter;            this.planetRadius = hPlanetRadius;            this.planetPixelRadius = hPlanetPixelRadius;            this.planetPixelCircumference = hPlanetPixelCircumference;            this.minscale = hMinscale;            this.maxscale = hMaxscale;            this.scale = hScale;            this.scaled_radius = hScaled_radius;            this.width = hWidth;            this.height = hHeight;            this.ctrLat = hCtrLat;            this.ctrLon = hCtrLon;            this.computeParameters();        }        public String toString() {            return "LLXYViewHelper[" + super.toString();        }        /**         * Forward projects a LatLonPoint into USER space.         */        public Point forward(LatLonPoint pt, Point p) {            super.forward(pt, p);            if (Debug.debugging("LLXYViewHelperf")) {                Debug.output("forward l,l,p: " + pt.getLongitude() + ","                        + pt.getLatitude() + " help xy: " + p.x + "," + p.y);            }            p.x = p.x - this.wx;            p.y = this.hy - p.y;            return p;        }        public Point forward(float lat, float lon, Point p) {            super.forward(lat, lon, p);            if (Debug.debugging("LLXYViewHelperf")) {                Debug.output("forward l,l,p: " + lon + "," + lat + " help xy: "                        + p.x + "," + p.y);            }            p.x = p.x - this.wx;            p.y = this.hy - p.y;            return p;        }        public Point forward(float lat, float lon, Point p, boolean isRadian) {            super.forward(lat, lon, p, isRadian);            if (Debug.debugging("LLXYViewHelperf")) {                Debug.output("forward l,l,p: " + ProjMath.radToDeg(lon) + ","                        + ProjMath.radToDeg(lat) + " help xy: " + p.x + ","                        + p.y);            }            p.x = p.x - this.wx;            p.y = this.hy - p.y;            return p;        }        public LatLonPoint inverse(Point pt, LatLonPoint llp) {            int x = pt.x + this.wx;            int y = this.hy - pt.y;            if (Debug.debugging("LLXYViewHelperi")) {                Debug.output("inverse helper x,y: " + x + "," + y);            }            // inverse project, using LLXY.inverse            return (super.inverse(x, y, llp));        }        public LatLonPoint inverse(int x, int y, LatLonPoint llp) {            x = x + this.wx;            y = this.hy - y;            if (Debug.debugging("LLXYViewHelperi")) {                Debug.output("inverse helper x,y: " + x + "," + y);            }            // inverse project using LLXY.inverse            return (super.inverse(x, y, llp));        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕高清不卡| 成人午夜激情片| 国产成人小视频| 欧美日本一区二区三区| 国产精品丝袜在线| 国产麻豆精品在线观看| 欧美日韩小视频| 玉米视频成人免费看| 国产成人av影院| 精品日产卡一卡二卡麻豆| 亚洲国产欧美日韩另类综合 | 日韩精品1区2区3区| av一区二区三区黑人| 久久青草国产手机看片福利盒子| 亚洲成人久久影院| 日本久久精品电影| 亚洲欧美日韩综合aⅴ视频| 懂色av中文字幕一区二区三区| 91精品国产综合久久久久久| 亚洲一二三区在线观看| 91网站最新地址| 国产精品毛片a∨一区二区三区| 国产综合久久久久久久久久久久| 91精品免费在线观看| 日韩精品国产精品| 欧美老年两性高潮| 日韩电影在线观看一区| 欧美精选在线播放| 日本亚洲天堂网| 日韩一区二区电影在线| 男女性色大片免费观看一区二区| 欧美精品在线视频| 日韩国产欧美一区二区三区| 91精品国产综合久久久久| 日本va欧美va欧美va精品| 日韩区在线观看| 国产一区二区三区黄视频| 精品av久久707| 国产成人三级在线观看| 亚洲色图制服丝袜| 色悠悠久久综合| 日日夜夜精品视频免费| 日韩免费在线观看| 国产成人精品网址| 亚洲精品视频在线观看免费 | 亚洲一区二区三区三| 欧美一a一片一级一片| 日韩在线a电影| 精品国产一区二区三区四区四 | 免费成人美女在线观看.| 欧美一级国产精品| 国产精品91一区二区| 亚洲欧美一区二区不卡| 欧美日韩国产在线播放网站| 麻豆中文一区二区| 国产精品久久午夜| 欧美亚洲动漫精品| 久久99国产乱子伦精品免费| 国产精品五月天| 欧美日韩一区二区三区四区五区| 伦理电影国产精品| 亚洲欧美日韩一区二区| 日韩三级在线免费观看| 99re视频精品| 美女mm1313爽爽久久久蜜臀| 国产精品美女久久久久高潮| 在线观看一区二区精品视频| 国产一区中文字幕| 亚洲乱码中文字幕综合| 精品国产91洋老外米糕| 91国产视频在线观看| 国产在线看一区| 亚洲一二三四在线| 国产日韩欧美亚洲| 欧美色综合网站| 国产精品一区二区男女羞羞无遮挡| 亚洲精品国产无套在线观| 日韩免费一区二区| 欧美午夜寂寞影院| 成人精品gif动图一区| 琪琪一区二区三区| 亚洲男人天堂av| 久久久久久久久久久久久久久99| 欧美主播一区二区三区| 成人美女在线观看| 久久国产精品99精品国产| 亚洲综合丁香婷婷六月香| 中文字幕成人av| 精品久久人人做人人爽| 欧美精品tushy高清| 欧洲精品中文字幕| 色综合色狠狠综合色| 成人av免费在线| 国产剧情在线观看一区二区| 日本va欧美va精品发布| 丝袜美腿一区二区三区| 亚洲h在线观看| 亚洲一区二区三区在线| 亚洲男同性视频| 亚洲人成人一区二区在线观看| 久久久久久久久久久久电影| 亚洲精品一区二区三区四区高清| 欧美日韩精品一区二区三区四区 | 成人黄色片在线观看| 国产一区二区按摩在线观看| 久久aⅴ国产欧美74aaa| 免费高清视频精品| 日韩av电影免费观看高清完整版 | 国产日韩影视精品| 久久久精品国产免大香伊| 欧美精品一区二区高清在线观看 | 日韩欧美黄色影院| 日韩一区二区三区四区五区六区 | 欧美三级电影网| 色老头久久综合| 欧美在线视频日韩| 欧日韩精品视频| 欧美日韩视频在线观看一区二区三区| 色综合久久综合| 欧美日本国产视频| 日韩一区二区三区免费观看| 日韩免费高清视频| 久久久久久99久久久精品网站| 久久伊人蜜桃av一区二区| 国产人妖乱国产精品人妖| 国产精品麻豆视频| 亚洲二区在线观看| 日韩国产一二三区| 国产一区二区视频在线| 成人免费观看av| 欧美亚洲日本国产| 欧美大片日本大片免费观看| 2020国产精品自拍| 中文字幕一区av| 午夜亚洲福利老司机| 国产一区二区三区久久久| eeuss影院一区二区三区| 欧美探花视频资源| 精品国产91乱码一区二区三区| 国产清纯白嫩初高生在线观看91 | www.久久精品| 欧美精品视频www在线观看| 欧美成人官网二区| 亚洲免费看黄网站| 久久精品72免费观看| 成人精品高清在线| 91精品国产综合久久国产大片| 精品国内二区三区| 亚洲一区二区三区四区在线观看 | 日韩精品三区四区| 成人黄色一级视频| 91精品国产91热久久久做人人| 国产片一区二区| 日韩激情在线观看| 国产成人综合在线| 欧美男生操女生| 国产精品久久久久久久久动漫 | 亚洲无人区一区| 国产乱子伦视频一区二区三区| 91视频免费观看| 久久综合久久久久88| 亚洲图片自拍偷拍| 成人免费视频一区| 欧美一区二区免费| 亚洲另类在线制服丝袜| 国产精品99久久久久久久vr| 欧美日韩在线播放| 亚洲欧洲av色图| 国产福利91精品一区二区三区| 欧美视频在线观看一区| 国产精品美女一区二区在线观看| 日韩国产精品久久久| 色偷偷久久人人79超碰人人澡| 久久久不卡网国产精品一区| 五月激情六月综合| 91黄视频在线观看| 国产精品久久久久久久久快鸭 | 精品视频全国免费看| 国产精品午夜电影| 国产精品羞羞答答xxdd| 日韩欧美二区三区| 天堂资源在线中文精品| 色婷婷一区二区三区四区| 国产精品成人免费| 成人免费高清在线| 国产女人水真多18毛片18精品视频| 麻豆国产欧美日韩综合精品二区| 欧洲精品一区二区三区在线观看| 国产精品护士白丝一区av| 成人污污视频在线观看| 亚洲国产精品传媒在线观看| 国产精品自在在线| 久久久久久久精| 国产一区二区在线电影| 久久免费国产精品| 国产精品一区二区久久精品爱涩 | 人人精品人人爱| 欧美一区二区三区不卡| 丝袜国产日韩另类美女| 欧美一区二区三区在|