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

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

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

    隨筆 - 81  文章 - 1033  trackbacks - 0
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    在浮躁的年代里,我們進取心太切,患得患失;虛榮心太強,戰戰兢兢。一心爭強好勝,惟恐榜上無名。
    I think I can fly , and flying like a bird !
    程序員一名,已售出,缺貨中!

    我的郵件聯系方式

    用且僅用于MSN

    博客點擊率
    free web counter
    free web counter

    常用鏈接

    留言簿(36)

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 187443
    • 排名 - 309

    最新評論

    閱讀排行榜

    評論排行榜

    ??? 算是校友的Tom兄在MapEasy的Google Group中提問“能否在放大縮小事件中動態添加MapType?”,并給出了自己用來實現此功能的代碼片段,但是無法達到想要的效果。下面根據Tom兄的代碼進行分析,并給出一種實現方式,希望給其他需要的朋友一個借鑒。

    ??? Tom兄代碼(聲明:下面代碼的相關權益完全歸Tom Xu所有):

    ?1?/**
    ?2??*?地圖放大
    ?3??*/
    ?4?this.zoomin?=?function()?{
    ?5?????var?level?=?this.model.getZoom().getLevel();
    ?6?????if?(level?<?MapModel.maxZoomLevel)?{
    ?7?????????this.model.setZoom(new?Zoom(level?+?1));
    ?8?//????if(level+1?==?SatelliteLevel)
    ?9?//????{
    10?//??????if(MapModel.mapTypes.length?==?1)
    11?//????????{
    12?//????????????MapModel.mapTypes.push(new?YTSMapType());
    13?//????????}
    14?//????}
    15?//????else
    16?//????{
    17?//????????if(MapModel.mapTypes.length?==?2)
    18?//????????{
    19?//????????????MapModel.mapTypes.pop();
    20?//????????}
    21?//????}
    22?????}
    23?}?

    ??? Tom兄原帖:
    ??? 當前只有一個基本的繼承自MapType的地圖類型,還有一個地圖類型想在第一個地圖放大到第N級時動態添加, 到其他級就刪除,使用了下列代碼,但不起作用,不知是不行還是需要配備其他操作?

    ??? 在Tom兄的代碼中把地圖放大的方法做了擴展,加入了判斷現在縮放的級別是否和設定好的級別一致,如果一致則添加一個地圖類型,否則把地圖類型彈出。在此過程中加入了容錯,判斷現在mapTypes數組中地圖類型個數是否正確。

    ??? Tom兄的想法完全是正確的,在zoomin方法中直接設置maptype也是很優雅的實現方式,避免了修改mapeasy核心類,但是卻忽略了一個很重要的步驟。我在一種更普遍的情況下(當大于一個給定級別時不顯示,小于這個給定級別時候顯示)給出我修改后的代碼,并做一些說明。

    ?1?/**
    ?2??*?地圖放大
    ?3??*/
    ?4?this.zoomin?=?function()?{
    ?5?????????var?level?=?this.model.getZoom().getLevel();
    ?6?????????if?(level?<?MapModel.maxZoomLevel)?{
    ?7???????????? //SatelliteLevel表示臨界級別,判斷只在通過這個級別的時候通知監聽器修改了maptype,從而
    ?8減少不必要的操作
    ?9?????????????????if(level+1?==?SatelliteLevel){
    10?????????????????????????//當只有一個地圖類型時,其實放大操作不涉及
    11?????????????????????????if(MapModel.mapTypes.length?==?1){
    12?????????????????????????????????MapModel.mapTypes.push(new?Edushi2DMapType());
    13?????????????????????????//當有兩個地圖類型時,縮小操作不涉及
    14?????????????????????????}else?if(MapModel.mapTypes.length?==?2){
    15?????????????????????????????????this.model.setCurrentMapType(MapModel.mapTypes.length-2);
    16?????????????????????????????????MapModel.mapTypes.pop();
    17?????????????????????????}
    18?????????????????????????//注意,在這里以command方式通知監聽器修改了maptype,并設置了當前的地圖類型。
    19??????????????????? command.exec("maptype",new Array(this.model.getId(), this.model.currentMapType));
    20??????????????? }
    21??????????????? this.model.setZoom(new?Zoom(level?+?1));
    22??????? }
    23
    24}?

    ??? 縮小操作類似。中間那段可以重構出來給放大和縮小方法共用。

    ??? 因為為了不侵犯核心類,所以當通知監聽器修改地圖類型和設置了新的縮放級別時候會重復的畫地圖。解決的方法是對核心類進行簡單修改,或者直接侵入修改對象屬性(不是調用setXXX(),getXXX())。

    ??? 大家可以仔細琢磨MapEasy中的兩種監聽者的方式,一種是地圖模型本身繼承監聽類,實現監聽,完成自身的方法修改某些屬性的監聽功能;另一種即為非常有用的command方式的監聽者,可以在Action中加入監聽,從而在外部調用監聽方法。

    ??? 監聽器幾乎是MapEasy完成絕大多數用戶交互的靈魂,請大家務必精讀相關代碼!
    posted on 2007-02-06 16:53 cresposhi 閱讀(2490) 評論(6)  編輯  收藏

    FeedBack:
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2007-02-06 17:49 BeanSoft
    不錯, 大家都來分享一下, 很快就能壯大!  回復  更多評論
      
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2007-02-06 20:54 梅穎
    四月肥?
      回復  更多評論
      
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2007-02-06 22:34 施偉
    是啊,需要大家都來分享。再次感謝beansoft兄貢獻的好想法  回復  更多評論
      
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2007-02-07 10:50 梅穎
    我也想貢獻哈  回復  更多評論
      
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2008-01-22 15:00 longlong
    我有兩個MapType,一個是WMSMapType,一個是RSMapType,分別是矢量地圖和影像地圖,單獨的情況下都能顯示,現在我想做他們的疊加,怎么做呢?

      回復  更多評論
      
    # re: MapEasy答疑(一) 能否在放大縮小事件中動態添加MapType 2009-03-01 14:46 深圳夜
    高人,MAPEASY在移動過程中占用非常多的內存,怎么解決呀。
    我QQ491560009  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成全在线观看免费观看大全| 二区久久国产乱子伦免费精品| 97se亚洲国产综合自在线| 久久免费视频观看| 成人看的午夜免费毛片| 国产成A人亚洲精V品无码| 久久久免费观成人影院| 不卡一卡二卡三亚洲| 亚洲色偷偷偷综合网| 国产在线国偷精品产拍免费| 亚洲人成网站在线在线观看| 日韩精品无码免费专区午夜| 亚洲精品夜夜夜妓女网| 牛牛在线精品免费视频观看| 亚洲国产91精品无码专区| 久久精品无码专区免费| 国产V亚洲V天堂A无码| 98精品全国免费观看视频| 亚洲国产日韩在线| 真实乱视频国产免费观看| 亚洲a无码综合a国产av中文| 亚洲男人的天堂在线va拉文| 色欲色欲天天天www亚洲伊| 波多野结衣免费在线观看| 亚洲人片在线观看天堂无码| 亚洲精品无码成人片在线观看| 国产精品极品美女自在线观看免费| 国产一精品一aⅴ一免费| www.亚洲成在线| 免费国产美女爽到喷出水来视频| 亚洲一线产品二线产品| 免费观看国产精品| 免费看成人AA片无码视频吃奶| 中文字幕亚洲第一在线| 99re热精品视频国产免费| 一区二区亚洲精品精华液| 四只虎免费永久观看| 99视频在线看观免费| 特级av毛片免费观看| 亚洲第一页中文字幕| 免费人妻av无码专区|