<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    OpenLayers Map理解

    Posted on 2010-11-24 10:03 帥子 閱讀(3980) 評論(0)  編輯  收藏 所屬分類: J2EE技術專區


    1,視口坐標的原點在左上角,水平向右為x軸正向,垂直向下為y 軸正向;
    2,地圖坐標原點為初始圖層的中心點,水平向右為x軸正向,垂直向上為y軸正向;
    3,視口中心點永遠與地圖中心點重合,不一定與瓦片中心點重合;
    4,拖動圖層的邏輯描述:地圖是不動的,視口移動從而展示不同的地圖區域;?
    Resolution:解析度 = 地圖尺寸/視口尺寸好比攝像機,鏡頭拉得越近解析度越小,地圖看得越清晰。?
    map.calculateBounds():地圖當前被查看區域邊界
    map.centerLayerContainer():設置圖層的左和上邊距,保證圖層中心點與地圖中心點重合
    map.getCenter():地圖中心點坐標(地圖坐標,經緯度)
    map.getCurrentSize():取視口尺寸
    map.getExtent():地圖當前欲被查看區域;地圖中心所在區域(經緯度)、視口尺寸乘以解析度
    map.getLonLatFromViewPortPx():視口坐標轉地圖坐標
    map.getMaxExtent():地圖最大可被查看區域(經緯度),視口中心點不可以移出該區域
    map.getResolution():地圖當前解析度
    map.getSize():視口尺寸
    map.getViewPortPxFromLonLat():地圖坐標轉成視口坐標
    map.getZoom():當前縮放級別
    map.pan(x軸方向, y軸方向, options):移動地圖map.setCenter(新的地圖中心點, 縮放級別, 拖動, 強制縮放級別改變):重新設置地圖中心、縮放比例??
    openlayers加載過程
    map = new OpenLayers.Map('map');
    1,?? 創建map對象,參數為展示地圖的Dom元素的id
    a)??????? 定義tileSize(默認256*256)
    b)??????? 定義maxExtent(默認-180, -90, 180, 90)
    c)??????? 定義paddingForPopups(15, 15, 15, 15)
    d)??????? 定義theme(默認theme/default/style.css)
    e)??????? 定義id:"OpenLayers.Map_"+序號
    f)??????? 定義div:為展示地圖的Dom元素
    g)??????? 定義viewPortDiv:視口Dom元素(id:"OpenLayers.Map_"+ 序號 + "_OpenLayers_ViewPort;OVERFLOW: hidden; POSITION: relative;width:"100%";height:"100%";className: "olMapViewport";),作為div的子元素

    h)??????? 定義layerContainerDiv:存放圖層的Dom元素(id:"OpenLayers.Map_"+ 序號 + " _OpenLayers_Container";zIndex:this.Z_INDEX_BASE['Popup']-1;),作為 viewPortDiv的子元素。
    Z_INDEX_BASE: { BaseLayer: 100, Overlay: 325, Popup: 750, Control: 1000 }定義events:object:map;element:div;
    EVENT_TYPES: [ "preaddlayer", "addlayer", "removelayer", "changelayer", "movestart","move", "moveend", "zoomend", "popupopen", "popupclose", "addmarker", "removemarker", "clearmarkers", "mouseover", "mouseout", "mousemove", "dragstart", "drag", "dragend", "changebaselayer"]

    i)??????? 定義events:object: map;element:div; eventTypes:EVENT_TYPES;fallThrough:true
    ???????????????????? i.????????????? 定義object:事件對應的js腳本對象
    ?????????????????? ii.????????????? 定義element:響應瀏覽器事件的Dom元素
    ??????????????? iii.????????????? 定義eventTypes:事件類型
    ?????????????????? iv.????????????? 定義fallThrough:是否穿透(停止事件傳播)
    ????????????????????? v.????????????? 定義listeners:事件監聽者
    ?????????????????? vi.????????????? 定義eventHandler:定義事件處理者:handleBrowserEvent
    ??????????????? vii.????????????? 向listeners中注冊EVENT_TYPES
    ???????????? viii.????????????? 將BROWSER_EVENTS注冊到EVENT_TYPES,在Dom元素element上注冊BROWSER_EVENTS瀏覽器監聽事件執行 eventHandler,在Dom元素element上注冊"dragstart"事件執行OpenLayers.Event.stop。
    BROWSER_EVENTS: ["mouseover", "mouseout","mousedown", "mouseup", "mousemove","click","dblclick","resize", "focus", "blur"]j)??????? updateSize響應"movestart"事件;updateSize響應"resize"事件;

    k)??????? 確保加載theme主題css樣式;

    l)??????? 定義layers:圖層;

    m)??????? 定義controls:(默認:Navigation、PanZoom、ArgParser、Attribution),設置control內部的 map對象,將controls添加到map中

    ????????????????????? i.????????????? Navigation:displayClass:olControlNavigation;events:active/deactive;
    id:OpenLayers.Control.Navigation_ 序號;
    map:地圖對象;handlers.click:dblclick;dragPan、 zoomBox;handlers.wheel:MouseWheel;將要監聽的事件添加到map的listeners中;

    ?????????????????? ii.????????????? PanZoom:position:(4,4);displayClass:olControlPanZoom;events:active/deactive;id:OpenLayers.Control.PanZoom_ 序號;…;添加到viewPortDiv中;

    ??????????????? iii.????????????? ArgParser:displayClass:olControlArgParser;events:active/deactive;id:OpenLayers.Control.ArgParser_ 序號;…;添加到viewPortDiv中;

    ?????????????????? iv.????????????? Attribution:displayClass:olControlAttribution;events:active/deactive;id:OpenLayers.Control.Attribution_ 序號;…;添加到viewPortDiv中;

    n)??????? unloadDestroy:響應瀏覽器卸載事件 var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",??????????????? "
    2,?? 創建圖層對象

    a)??????? newArguments:name:"OpenLayers WMS", url:"
    b)??????? OpenLayers.Layer.Grid.prototype.initialize: map.addLayers([ol_wms])
    3,?? 將圖層加入到地圖中
    a)??????? layer.div添加到layerContainerDiv

    圖例一

    window

    DOMMouseScroll Handler.MouseWheel.wheelListener
    mousewheel Handler.MouseWheel.wheelListener
    unload Map.unloadDestroy
    ?

    document

    mousewheel Handler.MouseWheel.wheelListener
    ? ?

    Div: map

    Div: Layer.WMS

    blur

    Map.handleBrowserEvent

    ?
    click

    Map.handleBrowserEvent

    ?
    dblclick

    Map.handleBrowserEvent

    ?

    dragstart

    OpenLayers.Event.stop

    ?
    focus

    Map.handleBrowserEvent

    ?
    mousedown

    Map.handleBrowserEvent

    ?
    mousemove

    Map.handleBrowserEvent

    ?
    mouseout

    Map.handleBrowserEvent

    ?
    mouseover

    Map.handleBrowserEvent

    ?
    mouseup

    Map.handleBrowserEvent

    ?
    resize

    Map.handleBrowserEvent

    ?
    ? ? ?

    Div: OpenLayers_Control_PanZoom_panup

    Div: OpenLayers_Control_PanZoom_panleft Div: OpenLayers_Control_PanZoom_panright Div: OpenLayers_Control_PanZoom_pandown Div: OpenLayers_Control_PanZoom_zoomin Div: OpenLayers_Control_PanZoom_zoomworld Div: OpenLayers_Control_PanZoom_zoomout
    click Control.PanZoom.doubleClick
    dblclick Control.PanZoom.doubleClick
    mousedown Control.PanZoom.buttonDown
    ? ?


    ?

    圖例

    Map.events.listeners

    Addlayer Control.Attribution, Control.Attribution.updateAttribution

    addmarker

    ?

    Blur

    ?
    changebaselayer Control.Attribution, Control.Attribution.updateAttribution
    changelayer Control.Attribution, Control.Attribution.updateAttribution
    clearmarkers ?

    Click

    Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.click Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.click ?
    Dblclick ?

    Drag

    ?
    Dragend ?

    dragstart

    ?

    Focus

    ?
    mousedown Handler.Drag, handler.Drag.setEvent

    Handler.Drag, handler.Drag. mousedown

    Handler.Click, handler.Click.setEvent Handler.Click, handler.Click.dblclick Handler.Click, handler.Click.setEvent Handler.Click, handler.Click.click Handler.Click, handler.Click.setEvent Handler.Click, handler.Click. mousedown Handler.Drag, handler.Drag.setEvent

    Handler.Drag, handler.Drag. mousedown

    ?

    mousemove

    Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mousemove Handler.MouseWheel, Handler.MouseWheel.setEven Handler.MouseWheel, Handler.MouseWheel.mousemove Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mousemove ?
    Mouseout Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mouseout Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mouseout ?

    mouseover

    ?

    Mouseup

    Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mouseup Handler.Drag, handler.Drag.setEvent Handler.Drag, handler.Drag.mouseup ?
    Move ?
    Moveend ?
    movestart Map , map. updateSize ?
    popupclose ?
    popupopen ?
    preaddlayer ?
    removelayer

    Control.Attribution, Control.Attribution.updateAttribution

    removemarker ?
    resize

    Map , map. updateSize

    ?
    Zoomend ?
    ?

    Layer.WMS.events.listeners

    blur ?
    click ?
    dblclick ?
    focus ?
    loadcancel ?
    loadend ?
    loadstart ?
    mousedown ?
    mousemove ?
    mouseout ?
    mouseover ?
    mouseup ?
    resize ?
    tileloaded ?
    visibilitychanged ?
    ?


    ?

    ? 圖例

    Control.Navigation.events.listeners

    active ?
    deactive ?
    ?

    Control.PanZoom.events.listeners

    active ?
    deactive ?
    ?

    Control.ArgParser.events.listeners

    active ?
    deactive ?
    ?

    Control.Attribution.events.listeners

    active ?
    deactive ?
    ?

    圖例二

    openlayers圖例.png


    ?

    主站蜘蛛池模板: 嫩草影院在线播放www免费观看| 亚洲美女色在线欧洲美女| AAAAA级少妇高潮大片免费看| 午夜免费福利在线| 一级毛片在线免费播放| 亚洲国产天堂久久综合网站| 好男人视频在线观看免费看片| 亚洲熟妇无码爱v在线观看| 麻豆国产人免费人成免费视频 | 免费99热在线观看| 亚洲乱妇老熟女爽到高潮的片| 一区二区无码免费视频网站| 亚洲国产精品乱码在线观看97| 亚欧免费一级毛片| 亚洲色图.com| 波多野结衣免费在线观看| a一级爱做片免费| 一本色道久久88亚洲精品综合| 最近的免费中文字幕视频| 亚洲a∨无码男人的天堂| 久久久久国产亚洲AV麻豆| 青青青国产在线观看免费网站| 亚洲三级高清免费| 久久精品亚洲综合| 亚洲国产精品无码久久久久久曰| eeuss影院ss奇兵免费com| 亚洲AV日韩AV永久无码久久| 国产精品成人无码免费| 一级黄色毛片免费看| 亚洲中文字幕一二三四区| 国产精品四虎在线观看免费| 67pao强力打造国产免费| 久久一区二区免费播放| 黄色网址免费在线| 亚洲午夜无码久久久久软件| 精品亚洲成a人片在线观看少妇| 久久WWW免费人成人片| 国产成人人综合亚洲欧美丁香花 | 日韩高清免费观看| 日韩欧毛片免费视频| 7x7x7x免费在线观看|