溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET中怎么創(chuàng)建一個GeoRSS訂閱源

發(fā)布時間:2021-07-16 11:35:36 來源:億速云 閱讀:149 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)ASP.NET中怎么創(chuàng)建一個GeoRSS訂閱源,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

實現(xiàn) HTTP 處理程序

1. 啟動 Microsoft Visual Studio 2008。

2. 在文件菜單中,單擊打開網(wǎng)站,然后打開 C:\SQLHOLs\Spatial and VE\Starter\StoreFinderSite 網(wǎng)站。

3. 在解決方案資源管理器中,展開 App_Code,然后雙擊 GeoRSSHandler.vb 在代碼編輯器中打開它。

注意:HTTP 處理程序是一個代碼模塊,用于處理對 Web 應(yīng)用程序的 HTTP 請求。通常由默認(rèn) ASP.NET 請求處理程序處理對 ASP.NET Web 應(yīng)用程序的請求,但是您可以針對特定文件擴(kuò)展名創(chuàng)建自定義處理程序。在本例中,您將實現(xiàn)一個將用于處理擴(kuò)展名為 .georss 的文件的請求的處理程序。

4. 檢查現(xiàn)有的代碼。處理傳入請求的過程名為 ProcessRequest。請注意,此過程不完整,包含大量必須添加代碼的注釋。

5. 在注釋 Build the GeoRSS feed下,添加以下代碼,以開始構(gòu)建將由 HTTP 處理程序返回的 GeoRSS 訂閱源。

rssOutput.AppendLine("  rssOutput.AppendLine("xmlns:georss='http://www.georss.org/georss'")  rssOutput.AppendLine("xmlns:gml='http://www.opengis.net/gml'>")  rssOutput.AppendLine("")  rssOutput.AppendLine("Store Locations")  rssOutput.AppendLine("")  rssOutput.AppendLine("" + System.DateTime.Now + "")  rssOutput.AppendLine("")  rssOutput.AppendLine("SQL Server")  rssOutput.AppendLine("")

6. 在注釋 Open a connection to the database下,添加以下代碼。

sqlConn.Open()

7. 在注釋 Use the GetStoresGML stored proc to get all stores by default下,添加以下代碼。

spName = "GetStoresGML"

注意:默認(rèn)情況下,對此 HTTP 處理程序的請求將調(diào)用 GetStoresGML 存儲過程,并返回包含所有商店的 GeoRSS 訂閱源。

8. 在注釋If a searchFrom parameter is provided, use GetNearbyStores and add the provided lat and lon coordinates as parameters下,添加以下代碼。

Dim searchFrom As String = context.Request.QueryString("SearchFrom")  If Not searchFrom Is Nothing Then  spName = "GetNearbyStoresGML" Dim latLong() As String = Split(searchFrom, ",", 2)  cmd.Parameters.Add(New SqlParameter("Lat", latLong(0)))  cmd.Parameters.Add(New SqlParameter("Long", latLong(1)))  End If

注意:如果請求包含名為 SearchFrom 的參數(shù)(假定它包含以逗號分隔的緯度和經(jīng)度坐標(biāo)對),處理程序?qū)拇藚?shù)提取緯度和經(jīng)度值,并使用 GetNearbyStoresGML 存儲過程返回 GeoRSS 訂閱源,訂閱源中包含請求的搜索點周圍方圓 100 km 范圍內(nèi)的商店。

9. 在注釋 Specify the stored procedure name as the command text(將存儲過程名稱指定為命令文本)下,添加以下代碼。

cmd.CommandText = spName

10. 在注釋 Create an element for this row下,添加以下代碼來為存儲過程的結(jié)果中的每一行都創(chuàng)建一個 標(biāo)記。

rssOutput.AppendLine("")

11. 在注釋 Use columns 0 and 1 for the title and description下,添加以下代碼以根據(jù)存儲過程返回的數(shù)據(jù)創(chuàng)建 ", geomRdr.GetValue(0)))

rssOutput.AppendLine(String.Format("{0}", _  geomRdr.GetValue(1)))

12. 在注釋 Add a element下,添加以下代碼來為此條目創(chuàng)建 元素。

rssOutput.AppendLine("")

13. 在注釋 Get the geography instance GML from column 2下,添加以下代碼,以從存儲過程結(jié)果中檢索 GML 數(shù)據(jù)。

gml = geomRdr.GetValue(2).ToString()

14. 在注釋 Add the elements to the output XML下,添加以下代碼以向 GeoRSS 訂閱源添加 GML 數(shù)據(jù)。

rssOutput.AppendLine(gml)

15. 在注釋 Close and elements下,添加以下代碼。

rssOutput.AppendLine("")  rssOutput.AppendLine("")

16. 在注釋 Close the document and send it as the response下,添加以下代碼以完成 GeoRSS 訂閱源并將其發(fā)送給請求人。

rssOutput.Append("")  context.Response.Write(rssOutput.ToString())

17. 保存 GeoRSSHandler.vb。

注冊 HTTP 處理程序

1. 在解決方案資源管理器中,雙擊 web.config 在編輯器中打開它。

2. 在 部分中,在注釋 Register the GeoRSSHandler for .georss requests下,添加以下 XML。

<add verb="*" path="*.georss" type="GeoRSSHandler" validate="false"/>

注意:您必須為特定文件擴(kuò)展名注冊 HTTP 處理程序,以便 Internet Information Services 將針對這些文件的請求轉(zhuǎn)發(fā)到正確的處理程序。

3. 保存 web.config。

測試 HTTP 處理程序

1. 在解決方案資源管理器中,單擊位于樹的根目錄下的網(wǎng)站項目文件,然后按 F4 查看其屬性。

2. 請注意觀察端口號屬性。

3. 在網(wǎng)站菜單上,單擊啟動選項。

4. 選擇啟動 URL,輸入以下 URL(將 port 替換為網(wǎng)站的端口號屬性的值),然后單擊確定。

http://localhost:/storefindersite/test.georss

5. 在調(diào)試菜單上,單擊開始執(zhí)行(不調(diào)試)。

6. 當(dāng) Microsoft Internet Explorer &reg; 打開時,查看包含商店名稱的 RSS 訂閱源的頁面。

7. 在 Internet Explorer 中,右鍵單擊該網(wǎng)頁的任意位置,然后單擊查看源文件以在記事本中打開該頁的源文件。請注意,該頁的源是您前面創(chuàng)建的 HTTP 處理程序生成的 GeoRSS 訂閱源。

8. 關(guān)閉記事本。

9. 在 Internet Explorer 中的地址欄中,將以下查詢字符串附加到 URL 后,然后按 Enter。

?SearchFrom=34.000000,-118.000000

10. 驗證生成的 GeoRSS 訂閱源包含搜索區(qū)域及其中的所有商店。

11. 關(guān)閉 Internet Explorer。

上述就是小編為大家分享的ASP.NET中怎么創(chuàng)建一個GeoRSS訂閱源了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI