<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
    天地圖官方網站提供的二次開發文檔和例子過于簡單,很多關鍵信息沒有給予說明,例如給出了WFS服務接口,卻沒有提供詳細的開發文檔。
    不過這并不影響我們的使用,因為OGC WFS規范包含元數據查詢命令,通過發送getCapabilities請求,我們可以得知服務器提供哪些WFS服務。

    獲取WFS服務器元數據
    http://search.tianditu.com/wfs?request=getCapabilities
    返回信息如下:
    <WFS_Capabilities version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengeospatial.net//wfs/1.0.0/WFS-capabilities.xsd">
    <Service>
    <Name>GeoGlobe WFS</Name>
    <Title>GeoGlobe網絡要素服務器</Title>
    <Abstract>武大吉奧信息技術有限公司GeoGlobe網絡要素服務器</Abstract>
    <KeywordList/>
    <OnlineResource>http://search.tianditu.com:80/wfs</OnlineResource>
    </Service>
    <Capability>
    <Request>
    <GetCapabilities>
    <DCPType>
    <HTTP>
    <Get onlineResource="http://search.tianditu.com:80/wfs"/>
    </HTTP>
    </DCPType>
    </GetCapabilities>
    <GetFeature>
    <ResultFormat>
    <GML2/>
    </ResultFormat>
    <DCPType>
    <HTTP>
    <Get onlineResource="http://search.tianditu.com:80/wfs"/>
    <Post onlineResource="http://search.tianditu.com:80/wfs"/>
    </HTTP>
    </DCPType>
    </GetFeature>
    <DescribeFeatureType>
    <SchemaDescriptionLanguage>
    <XMLSCHEMA/>
    </SchemaDescriptionLanguage>
    <DCPType>
    <HTTP>
    <Get onlineResource="http://search.tianditu.com:80/wfs"/>
    </HTTP>
    </DCPType>
    </DescribeFeatureType>
    </Request>
    <VendorSpecificCapabilities/>
    </Capability>
    <FeatureTypeList>
    <Operations>
    <Query/>
    </Operations>
    <FeatureType>
    <Name>DOMAIN_POI_NEW</Name>
    <Title>DOMAIN_POI_NEW</Title>
    <Abstract>DOMAIN_POI_NEW</Abstract>
    <Keywords>DOMAIN_POI_NEW</Keywords>
    <SRS>EPSG:4326</SRS>
    <LatLongBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="90.0"/>
    </FeatureType>
    <FeatureType>
    <Name>iso19112:SI_Gazetteer</Name>
    <Title>iso19112:SI_Gazetteer</Title>
    <SRS>EPSG:4326</SRS>
    <LatLongBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="90.0"/>
    </FeatureType>
    </FeatureTypeList>
    <ogc:Filter_Capabilities>
    <ogc:Spatial_Capabilities>
    <ogc:Spatial_Operators>
    <ogc:BBOX/>
    <ogc:Equals/>
    <ogc:Disjoint/>
    <ogc:Intersect/>
    <ogc:Touches/>
    <ogc:Crosses/>
    <ogc:Within/>
    <ogc:Contains/>
    <ogc:Overlaps/>
    <ogc:Beyond/>
    </ogc:Spatial_Operators>
    </ogc:Spatial_Capabilities>
    <ogc:Scalar_Capabilities>
    <ogc:Logical_Operators/>
    <ogc:Comparison_Operators>
    <ogc:Simple_Comparisons/>
    <ogc:Like/>
    <ogc:Between/>
    </ogc:Comparison_Operators>
    </ogc:Scalar_Capabilities>
    </ogc:Filter_Capabilities>
    </WFS_Capabilities>

    返回信息包含了WFS服務器的開發單位(武大吉奧),WFS圖層的名稱(DOMAIN_POI_NEW和iso19112:SI_Gazetteer),支持的邏輯操作符和空間操作符。

    繼續測試
    http://search.tianditu.com/wfs?request=GetFeature&version=1.0.0&typeName=DOMAIN_POI_NEW&BBOX=105.99,29.99,106,30
    返回
    <wfs:FeatureCollection xsi:schemaLocation="http://www.opengis.net/wfs WFS_Basic.xsd http://www.geostart.com.cn/geoglobe describe.xsd">
    <gml:boundedBy>
    <gml:Box>
    <gml:coordinates>-180.0,-90.0 180.0,90.0</gml:coordinates>
    </gml:Box>
    </gml:boundedBy>
    <gml:featureMember>
    <DOMAIN_POI_NEW>
    <OID>6764930</OID>
    <Geometry>
    <gml:Point srsName="-1">
    <gml:coordinates>105.999183,29.995258</gml:coordinates>
    </gml:Point>
    </Geometry>
    <DOMAINNAME>梅子村</DOMAINNAME>
    <DOMAINCODE>1CHN50022400000130172</DOMAINCODE>
    <NLEVEL>16</NLEVEL>
    <X>105.999183</X>
    <Y>29.995258</Y>
    <COLDATE/>
    <NAMETIME/>
    <ENDTIME/>
    <CLASSID/>
    <STANDARDNAME>亞洲中國重慶市銅梁縣梅子村</STANDARDNAME>
    <TELEPHONE/>
    <ADDRESS/>
    <KIND>BB80</KIND>
    <ZIPCODE/>
    <ADMINCODE>500224</ADMINCODE>
    <POI_ID>5000000130172</POI_ID>
    <PID/>
    <DATATYPE>chinapoi</DATATYPE>
    <FENAME/>
    <locationType>
    <SI_LocationType>
    <name>DOMAIN_POI_NEW</name>
    </SI_LocationType>
    </locationType>
    </DOMAIN_POI_NEW>
    </gml:featureMember>
    </wfs:FeatureCollection>

    分析返回的GML數據,可知DOMAIN_POI_NEW是地名圖層,包含名稱、代碼、類別碼等屬性字段。

    將圖層改為iso19112:SI_Gazetteer,沒有返回任何信息,google ISO19112,得到如下解釋:
    DIN EN ISO 19112-2005 地理信息.通過地理標識符的空間定位 標準號: DIN EN ISO 19112-2005 標準名稱: 地理信息.通過地理標識符的空間定位

    得到以上信息后,我們嘗試使用Openlayers獲取,即全國地名數據庫。

    通過URL(GET方式)訪問“天地圖”WFS服務,可以使用OpenLayers.Request.GET類,示例代碼如下:
       //使用FEATUREID查詢

       new OpenLayers.Request.GET( {
            url : "http://search.tianditu.com/wfs?request=GetFeature",
            params: {
                typeName: "DOMAIN_POI_NEW",
                FEATUREID: "DOMAIN_POI_NEW.6649356"
            },
            callback : handler
        });


       //使用BBOX查詢

        new OpenLayers.Request.GET( {
            url : "http://search.tianditu.com/wfs?request=GetFeature",
            params: {
                typeName: "DOMAIN_POI_NEW",
                BBOX: "105.99,29.99,106,30"  //map.getExtent().toBBOX()
            },
            callback : handler
        });


    說明:
    url WFS服務器地址,必須加上?request=GetFeature
    typeName 圖層名稱
    FEATUREID WFS的圖元ID,采用標準格式: [圖層名].[OID編號]
    BBOX 指定區域查詢,注意不要設置過大,否則瀏覽器可能失去響應。

    通過POST方式訪問“天地圖”WFS服務,可以使用OpenLayers.Request.POST類,示例代碼如下:

        var xmlPara = "<?xml version='1.0' encoding='UTF-8'?>"
                + "<wfs:GetFeature maxFeatures='100' service='WFS' version='1.0.0' "
                + "xmlns:wfs='http://www.opengis.net/wfs' "
                + "xmlns:gml='http://www.opengis.net/gml' "
                + "xmlns:ogc='http://www.opengis.net/ogc' "
                + "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
                + "xsi:schemaLocation='http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd'>"
                + "<wfs:Query typeName='iso19112:SI_Gazetteer' srsName='EPSG:4326'>"
                + "<ogc:Filter xmlns:ogc='http://www.opengis.net/ogc'>"
                + "<ogc:And><ogc:PropertyIsLike wildCard='*' singleChar='.' escape='!'>"
                + "<ogc:PropertyName>STANDARDNAME</ogc:PropertyName>"
                + "<ogc:Literal>*解放碑*</ogc:Literal>"
                + "</ogc:PropertyIsLike></ogc:And></ogc:Filter>"
                + "</wfs:Query></wfs:GetFeature>";
        
        var request = OpenLayers.Request.POST( {
            url : "http://search.tianditu.com/wfs?",
            data : xmlPara,
            callback : handler
        });
    };

    說明:

    url WFS服務器地址

    data WFS請求正文,返回的GML由回調函數handler處理

    handler負責處理服務端返回的GML數據,也就是矢量化的地圖數據,根據應用需求編寫代碼,獲取feature的通用代碼如下:
    var g = new OpenLayers.Format.GML();
    var features = g.read(req.responseText);
    for ( var i = 0; i < features.length; ++i) {
       var feature = features[i];
       var geometry = feature.geometry;
       var attributes = feature.attributes;
    }

    定義過濾條件時請使用STANDARDNAME字段,不要使用DOMAINNAME字段,前者應該有索引支持,而后者沒有,查詢速度差別很大。

    經過測試,typeName="DOMAIN_POI_NEW"和typeName="iso19112:SI_Gazetteer"都能返回結果。由于缺少官方文檔說明,不知道這兩個圖層有何區別。

    嘗試使用OpenLayers.Protocol.WFS無法訪問“天地圖”WFS服務,服務器返回: 請求參數[REQUEST]的值為空或不正確。

    提醒: 使用POST查詢時,頁面文件或代碼文件務必保存為utf-8編碼,如果使用gbk、gb2312編碼,漢字地名會變成亂碼,導致javascript代碼錯誤。

    posted on 2010-12-10 16:22 天狼 閱讀(5936) 評論(3)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲av永久无码精品秋霞电影秋 | 四虎免费久久影院| 亚洲免费视频在线观看| 免费看少妇高潮成人片| 亚洲国产精品无码中文字| 成人性生交大片免费看好| 色噜噜AV亚洲色一区二区| 国产线视频精品免费观看视频| a级亚洲片精品久久久久久久 | 国内自产少妇自拍区免费| 国产AV旡码专区亚洲AV苍井空| 成人免费看片又大又黄| 亚洲精品无码永久在线观看男男| 精品免费国产一区二区三区| 久久精品熟女亚洲av麻豆 | 99久久综合国产精品免费| www亚洲精品少妇裸乳一区二区| 国产亚洲精品成人久久网站| ZZIJZZIJ亚洲日本少妇JIZJIZ| 免费无码又爽又刺激网站直播| 亚洲精彩视频在线观看| 性感美女视频在线观看免费精品| 香蕉视频免费在线播放| 成人午夜亚洲精品无码网站| 亚洲人成免费网站| 亚洲精品无码国产片| 国产自偷亚洲精品页65页| 巨波霸乳在线永久免费视频| 亚洲第一综合天堂另类专| 亚洲色婷婷综合久久| 狼群影院在线观看免费观看直播| 亚洲女女女同性video| 国产成人综合亚洲亚洲国产第一页| 91久久青青草原线免费| 久久亚洲精品11p| 亚洲国产精华液网站w| 免费观看a级毛片| 日本免费高清视频| 国产精品无码亚洲精品2021| 亚洲国产成人高清在线观看| 在线观看免费大黄网站|