2015-09-14 57 views
0

我在地圖上有一個WFS圖層。我將building_id作爲一個屬性與其他許多屬性一起構建在圖層中。我的層中也有座標。當我點擊一個URL時放大到矢量圖層

我有一個網址:http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:buildings&CQL_FILTER=id=「BB21」

如何使用這個網址來放大我的地圖,那棟樓?

任何想法?

AJ

================這裏更新===============

$.ajax({ 
    url: 'http://localhost:8080/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=genesis:Building_WGS&CQL_FILTER=HOUSE_NO=%271436%27', 
    xhrFields: { 
     withCredentials: true 
    }, 
    success: function(data) { 
     var te = new ol.format.GML2(); 

     var a = te.readFeatures(data) 
     var feature = new ol.Feature(a); 
     //console.log(test1); 
     var geom = feature.get("HOUSE_NO"); 
     var view = map.getView(); 
     //view.fit(geom, map.getSize()); 
     console.log(geom); 
    } 
}); 

回答

0

第一,你必須使用ajax請求來查詢url。許多JavaScript庫支持簡單的方式來提出這樣的請求,例如jQuery:http://api.jquery.com/jquery.ajax/

然後,在收到請求響應後,您必須閱讀結果。如果您使用的是WFS,那麼您的回覆應該在GML中。 OL3具有用於GML 2和3的格式:

兩者都有一個readFeatures方法可用於您的響應轉換成的特徵的陣列,即,進入的ol.Feature實例。然後,您可以循環使用這些特徵並獲取它們的幾何圖形並將該圖貼合到該幾何圖形上。

var geom = feature.getGeometry(); 
var view = map.getView(); 
view.fit(geom, map.getSize()); 
+0

嗨, 感謝您的指導。但是我在實施解決方案時遇到了一些問題:我已經用您的實施想法更新了我的問題。但是,當我嘗試查看它給我空的功能。我究竟做錯了什麼?請參閱上面的更新代碼。 –

+0

給我「undefined」不爲空抱歉 –

+0

'readFeatures'返回一個'ol.Feature'對象的數組。您不需要根據返回的內容創建功能。請參閱文檔:http://openlayers.org/en/v3.9.0/apidoc/ol.format.GML3.html#readFeatures。另外,我建議你嘗試加載ol-debug.js,並使用瀏覽器開發工具放置斷點,以真正理解正在發生的事情。不要害怕進入代碼並看看它做了什麼。 –

相關問題