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

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

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

    posts - 41,  comments - 90,  trackbacks - 0
    連接Oracle Spatial

    前面的測試中我們使用shape文件作為地圖數(shù)據(jù)源,下面我們將從Oracle Spatial空間數(shù)據(jù)庫讀取地理數(shù)據(jù)。

    mapserver提供兩種方式連接oracle空間數(shù)據(jù)庫,native oracle spatial和ogr。安裝包提供了支持native oracle spatial的二進制文件,ogr方式需要自行編譯源代碼。借用以往項目的Oracle 10.2.0.3數(shù)據(jù)庫,MapServer采用ms4w_2.3.1已編譯包,地圖服務(wù)器安裝Oracle10.2客戶端,進行本地網(wǎng)絡(luò)配置,測試連接正常。

    關(guān)閉Apache MS4W Web Server服務(wù),進入\ms4w\Apache\cgi-bin\ignored-libmap\oracle11g目錄,將libmap.dll復(fù)制粘貼到\ms4w\Apache\cgi-bin目錄,替換原有文件,啟動Apache MS4W Web Server服務(wù)。

    新建一個Mapfile文件,LAYER部分如下
    LAYER
        NAME "road"
        TYPE LINE
        CONNECTION "geouser/123456@geodb" #數(shù)據(jù)庫連接字符串
        CONNECTIONTYPE oraclespatial      #連接類型為oracle spatial
        DATA "GEOLOC FROM NAV_ROAD1 USING SRID 4326"  #此處GEOLOC為GEOMETRY字段名,NAV_ROAD1為表名
        PROJECTION
           "init=epsg:4326" #必須指定SRS編碼
        END
        DUMP TRUE
        CLASS
            STYLE
                COLOR 0 128 128
            END
        END
    END

    DATA標(biāo)簽使用如下格式
    "[geom_column]
    FROM
    [table]| [(SELECT [...]
    FROM [table]|[Spatial Operator]
    [WHERE condition] )]
    [USING [UNIQUE column]| [SRID #srid]| [FUNCTION]| [VERSION #version]
    ]"
    注意:不要在FROM之前加入屬性字段名,屬性字段可添加在FROM后的子查詢中,如下所示



    GEOLOC FROM (SELECT MI_PRINX AS OID, NAME AS ONAME, COLOR AS COLOR, GEOLOC AS GEOLOC FROM NAV_ROAD1) USING SRID 4326



    LABEL或STYLE用到的屬性字段必須包含在SELECT子查詢中。







    修改openlayers客戶端代碼



    var ms_layer = new OpenLayers.Layer.WMS(



                    "Test Map",
                    "/cgi-bin/mapserv.exe",
                    {   
                        layers: 'road',
                        map: 'I:/cn_data/c2.map',
                        format: 'png'
                    },
                    {
                        reproject: false,
                        'numZoomLevels': 20,
                        gutter: 15,
                        buffer: 0
                    }
                );

    打開瀏覽器,查看效果。

    為圖層添加標(biāo)注(Label)


    在地圖上標(biāo)注文字,必然涉及到字體,MapServer采用與操作系統(tǒng)無關(guān)的設(shè)計,不能自動獲知當(dāng)前操作系統(tǒng)下安裝了哪些字體,必須手工創(chuàng)建字體集FONTSET文件。
    該文件的格式非常簡單,每行配置一個字體,左邊是字體名(可自由命名),右邊是字體文件的路徑(請使用絕對路徑),如下所示:
    arial   C:\WINDOWS\Fonts\arial.ttf
    sans    C:\WINDOWS\Fonts\SIMSUN.TTC
    將以上內(nèi)容保存為文本文件,文件名和擴展名不限,例如保存為fonts.txt

    在Mapfile的Map標(biāo)簽下添加一行
    FONTSET fonts.txt #指明字體集文件,可以包含路徑

    在Mapfile的Layer標(biāo)簽中添加一行
    LABELITEM "NAME"  #指明標(biāo)注所用的字段名

    在Layer下的CLASS標(biāo)簽中添加以下內(nèi)容
    LABEL
        COLOR  0 0 0
        OUTLINECOLOR 255 255 255
        FONT "sans"  #此處sans對應(yīng)宋體SIMSUN.TTC
        TYPE truetype
        SIZE 6
        POSITION AUTO
        PARTIALS FALSE
        ENCODING GBK #此處為文字編碼,如果不設(shè)置該值,中文將不能正確顯示。對于中文Windows系統(tǒng),操作系統(tǒng)的默認(rèn)編碼為GBK。
    END

    注意:ms4w_3.0beta11屬于開發(fā)版本,支持shape文件數(shù)據(jù)源配置label標(biāo)簽,不支持oracle spatial數(shù)據(jù)源配置label標(biāo)簽。
    為了讀取oracle空間表中的屬性生成標(biāo)簽,我們換用ms4w_2.3.1正式版,系統(tǒng)工作正常。

    使用動態(tài)樣式(STYLE)

    實際應(yīng)用中對地圖的渲染有很多要求,MapServer支持動態(tài)設(shè)置STYLE,修改Mapfile文件LAYER的STYLE,例如:
    STYLE
        COLOR [COLOR]
    END
    每條道路的顏色由道路表的屬性字段COLOR決定,與之類似,可以從數(shù)據(jù)庫取值填充SYMBOL,SIZE,ANGLE等標(biāo)簽。
    提示:MapServer的顏色碼可以使用[r] [g] [b]十進制格式,也可以使用Web開發(fā)中常用的RRGGBB十六進制格式,例如:#FF0000


    posted on 2010-11-26 12:16 天狼 閱讀(2809) 評論(1)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久久亚洲精品无码| 免费看国产成年无码AV片| 成人免费男女视频网站慢动作| 久久精品国产亚洲av麻豆| 亚洲人成77777在线播放网站| 精品日韩亚洲AV无码一区二区三区 | 国产亚洲精品精品精品| 成人最新午夜免费视频| 亚洲天堂2017无码中文| 性生大片视频免费观看一级| 久久国产乱子伦免费精品| 亚洲一二成人精品区| **aaaaa毛片免费同男同女| 亚洲的天堂av无码| 最近免费中文字幕4| 亚洲AV永久无码精品一福利| 免费v片在线观看无遮挡| 日韩毛片一区视频免费| 91视频国产免费| 国产亚洲美女精品久久久2020| 国产福利免费视频| 动漫黄网站免费永久在线观看| 亚洲中文字幕无码一去台湾| 日本黄页网站免费| 中文字幕a∨在线乱码免费看 | 在线观看视频免费国语| 亚洲AV日韩AV天堂一区二区三区| 久久国产乱子免费精品| 亚洲人成高清在线播放| 99精品国产成人a∨免费看| 中文字幕日韩亚洲| 免费女人高潮流视频在线观看| 亚洲另类自拍丝袜第1页| 国产在线不卡免费播放| 丝袜捆绑调教视频免费区| 亚洲国产美女在线观看| 69av免费观看| 香港一级毛片免费看| 久久国产亚洲电影天堂| 永久免费视频v片www| 亚洲欧美成人一区二区三区|