<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)

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 186990
    • 排名 - 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  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 大桥未久亚洲无av码在线| a级毛片免费观看在线| 日韩成人免费在线| 免费无码午夜福利片| 久久久久久亚洲精品| 青青青免费国产在线视频小草| 亚洲欧美日韩中文字幕在线一区| 亚洲成a人片在线观看国产| 久别的草原电视剧免费观看| 亚洲人成网站色在线观看| 亚洲男人av香蕉爽爽爽爽| 天天影视色香欲综合免费| 美女羞羞免费视频网站| 亚洲精品自产拍在线观看动漫| 日韩免费观看一级毛片看看| 免费人成在线观看视频高潮| 亚洲综合小说另类图片动图| 亚洲老妈激情一区二区三区| 无码人妻精品一二三区免费| 成人性做爰aaa片免费看| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲国产精品无码专区影院 | 破了亲妺妺的处免费视频国产| 一级做性色a爰片久久毛片免费| 亚洲福利视频一区二区三区| 亚洲第一网站男人都懂| 国产成人福利免费视频| 久久www免费人成精品香蕉 | 免费国产叼嘿视频大全网站| 久久久久久亚洲av无码蜜芽| 久久久无码精品亚洲日韩按摩 | 亚洲精品成人久久久| 国产精品69白浆在线观看免费| 中文字幕在线免费看| 亚洲AV女人18毛片水真多| 91亚洲va在线天线va天堂va国产| 亚洲精品无码久久毛片| 在线a毛片免费视频观看| 在线永久看片免费的视频| 精品免费视在线观看| www成人免费观看网站|