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

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

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

    隨筆 - 81  文章 - 1033  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

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

    我的郵件聯系方式

    用且僅用于MSN

    博客點擊率
    free web counter
    free web counter

    常用鏈接

    留言簿(36)

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 186985
    • 排名 - 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 閱讀(2484) 評論(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  回復  更多評論
      

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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 另类小说亚洲色图| 亚洲精品无码久久| 免费人成激情视频在线观看冫| 精品国产亚洲男女在线线电影 | 久久久无码精品亚洲日韩蜜桃| 国产免费一级高清淫曰本片| 国产精品亚洲产品一区二区三区| 一级女人18片毛片免费视频| 亚洲中文无韩国r级电影| 国产99精品一区二区三区免费| 亚洲日韩在线观看| selaoban在线视频免费精品| 亚洲日韩一页精品发布| 日本一道本不卡免费| 久久久久亚洲av无码专区导航| 亚洲黄色免费网站| 亚洲精品午夜国产va久久| 在线免费一区二区| 特级毛片A级毛片免费播放| 亚洲精品无码久久久久AV麻豆| 免费一区二区无码东京热| 97亚洲熟妇自偷自拍另类图片| 国产成人精品免费视频动漫| 一区二区亚洲精品精华液 | 亚洲精品国产福利一二区| 国产一区二区三区免费观在线| 亚洲一区二区三区夜色| 中国在线观看免费高清完整版| 色偷偷尼玛图亚洲综合| 亚洲人成网7777777国产| 久草视频在线免费| 免费夜色污私人影院网站| 亚洲国产精品乱码一区二区 | 1000部拍拍拍18勿入免费视频软件 | 希望影院高清免费观看视频| 成人婷婷网色偷偷亚洲男人的天堂| 国产亚洲情侣一区二区无码AV| 最近高清中文字幕免费| 性色av极品无码专区亚洲| 亚洲AV无码乱码在线观看富二代| 成年女人毛片免费播放人|