我正在使用GeoExt,OpenLayers開發一個Web應用程序,並擁有自己的GeoServer來爲各種地圖服務。不過,如果需要,我想讓用戶添加其他WMS,以便能夠播放所有期望的圖層。WMS GetFeatureInfo;多層次,不同的來源
因此,我的問題與GetFeatureInfo請求。現在我有連接到geoext的地圖面板,工具欄按鈕,
new GeoExt.Action({
iconCls: "feature",
map: map,
toggleGroup: "tools",
tooltip: "Feature",
control: featureControl
})
其控制屬性是
var featureControl = new OpenLayers.Control.WMSGetFeatureInfo({
queryVisible: true,
drillDown: true,
infoFormat:"application/vnd.ogc.gml"
});
我還定義的事件監聽器做什麼,我真的想一旦我得到的答覆,但這在這裏不重要。我的問題如下:
考慮到用戶點擊有2個可見圖層並且其中至少有一個來自不同源的點,OpenLayers將必須針對不同來源執行一個AJAX請求,並且從的OpenLayers自己的文檔,當接收到的GetFeatureInfo響應
觸發。事件 對象具有包含響應正文(字符串)的文本屬性,帶有已解析功能數組的 功能屬性,帶有觸發 請求的鼠標單擊或懸停事件位置的xy屬性 ,以及請求本身的請求屬性。如果drillDown 設置爲true,並且發出多個請求以收集來自所有圖層的功能 信息,則文本和請求將僅包含上次請求的響應 正文和請求對象。
所以,是的,它顯然不會像那樣馬上工作。看看調試器,我可以清楚地看到,從不同的來源獲得兩層,它實際上做了請求,它只是不等待第一個響應,並跳到下一個(顯然是異步)。我曾經想過一個接一個地完成請求,也就是說完成上述第一個請求,一旦完成並保存響應,請繼續下一個請求。但是我仍然習慣了GeoExt使用的數據結構。
是否有任何API(不論是GeoExt還是OpenLayers)選項/我缺少的方法?任何不錯的解決方法?
感謝您閱讀:-)
PS:對不起,如果我沒有得到足夠清晰,英語不是我的母語。如果上述內容不夠清楚,請告知我:)
和我soooobad英語遺憾:S – saheka
哇,謝謝您詳細的解答!我會檢查它,看看它是否也適用於我,並且如果是這樣,請將您的答案標記爲正確:-) –