新聞中心
在此練習(xí)中,您將在 ASP.NET Web 應(yīng)用程序中實(shí)現(xiàn) HTTP 處理程序以返回 GeoRSS 訂閱源。GeoRSS 是在 RSS 訂閱源中包含地理空間數(shù)據(jù)時(shí)所用的一個(gè)標(biāo)準(zhǔn),它定義了一種名為 GeoRSS GML 的特定格式,用來(lái)在訂閱源中包含 GML 格式的數(shù)據(jù)??蛻舳藨?yīng)用程序可以訂閱 GeoRSS 訂閱源,訂閱方式與訂閱常規(guī) RSS 訂閱源相同??梢暂p松地將 GeoRSS 格式的數(shù)據(jù)導(dǎo)入 Microsoft Virtual Earth VEMap 控件中。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的鐵門(mén)關(guān)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
#T#
注意:您可以從 C:\SQLHOLS\Spatial and VE\Solution\StoreFinderSite 中的完成的網(wǎng)站頁(yè)面復(fù)制此練習(xí)中所用的代碼。
實(shí)現(xiàn) HTTP 處理程序
1. 啟動(dòng) Microsoft Visual Studio 2008。
2. 在文件菜單中,單擊打開(kāi)網(wǎng)站,然后打開(kāi) C:\SQLHOLs\Spatial and VE\Starter\StoreFinderSite 網(wǎng)站。
3. 在解決方案資源管理器中,展開(kāi) App_Code,然后雙擊 GeoRSSHandler.vb 在代碼編輯器中打開(kāi)它。
注意:HTTP 處理程序是一個(gè)代碼模塊,用于處理對(duì) Web 應(yīng)用程序的 HTTP 請(qǐng)求。通常由默認(rèn) ASP.NET 請(qǐng)求處理程序處理對(duì) ASP.NET Web 應(yīng)用程序的請(qǐng)求,但是您可以針對(duì)特定文件擴(kuò)展名創(chuàng)建自定義處理程序。在本例中,您將實(shí)現(xiàn)一個(gè)將用于處理擴(kuò)展名為 .georss 的文件的請(qǐng)求的處理程序。
4. 檢查現(xiàn)有的代碼。處理傳入請(qǐng)求的過(guò)程名為 ProcessRequest。請(qǐng)注意,此過(guò)程不完整,包含大量必須添加代碼的注釋。
5. 在注釋 Build the GeoRSS feed下,添加以下代碼,以開(kāi)始構(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)情況下,對(duì)此 HTTP 處理程序的請(qǐng)求將調(diào)用 GetStoresGML 存儲(chǔ)過(guò)程,并返回包含所有商店的 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
注意:如果請(qǐng)求包含名為 SearchFrom 的參數(shù)(假定它包含以逗號(hào)分隔的緯度和經(jīng)度坐標(biāo)對(duì)),處理程序?qū)拇藚?shù)提取緯度和經(jīng)度值,并使用 GetNearbyStoresGML 存儲(chǔ)過(guò)程返回 GeoRSS 訂閱源,訂閱源中包含請(qǐng)求的搜索點(diǎn)周?chē)綀A 100 km 范圍內(nèi)的商店。
9. 在注釋 Specify the stored procedure name as the command text(將存儲(chǔ)過(guò)程名稱(chēng)指定為命令文本)下,添加以下代碼。
- cmd.CommandText = spName
10. 在注釋 Create an element for this row下,添加以下代碼來(lái)為存儲(chǔ)過(guò)程的結(jié)果中的每一行都創(chuàng)建一個(gè) 標(biāo)記。
- rssOutput.AppendLine("")
11. 在注釋 Use columns 0 and 1 for the title and description下,添加以下代碼以根據(jù)存儲(chǔ)過(guò)程返回的數(shù)據(jù)創(chuàng)建 ", geomRdr.GetValue(0)))
- rssOutput.AppendLine(String.Format("{0}", _
- geomRdr.GetValue(1)))
12. 在注釋 Add a element下,添加以下代碼來(lái)為此條目創(chuàng)建 元素。
- rssOutput.AppendLine("")
13. 在注釋 Get the geography instance GML from column 2下,添加以下代碼,以從存儲(chǔ)過(guò)程結(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ā)送給請(qǐng)求人。
- rssOutput.Append("")
- context.Response.Write(rssOutput.ToString())
17. 保存 GeoRSSHandler.vb。
注冊(cè) HTTP 處理程序
1. 在解決方案資源管理器中,雙擊 web.config 在編輯器中打開(kāi)它。
2. 在 部分中,在注釋 Register the GeoRSSHandler for .georss requests下,添加以下 XML。
注意:您必須為特定文件擴(kuò)展名注冊(cè) HTTP 處理程序,以便 Internet Information Services 將針對(duì)這些文件的請(qǐng)求轉(zhuǎn)發(fā)到正確的處理程序。
3. 保存 web.config。
測(cè)試 HTTP 處理程序
1. 在解決方案資源管理器中,單擊位于樹(shù)的根目錄下的網(wǎng)站項(xiàng)目文件,然后按 F4 查看其屬性。
2. 請(qǐng)注意觀察端口號(hào)屬性。
3. 在網(wǎng)站菜單上,單擊啟動(dòng)選項(xiàng)。
4. 選擇啟動(dòng) URL,輸入以下 URL(將 port 替換為網(wǎng)站的端口號(hào)屬性的值),然后單擊確定。
http://localhost:/storefindersite/test.georss
5. 在調(diào)試菜單上,單擊開(kāi)始執(zhí)行(不調(diào)試)。
6. 當(dāng) Microsoft Internet Explorer ? 打開(kāi)時(shí),查看包含商店名稱(chēng)的 RSS 訂閱源的頁(yè)面。
7. 在 Internet Explorer 中,右鍵單擊該網(wǎng)頁(yè)的任意位置,然后單擊查看源文件以在記事本中打開(kāi)該頁(yè)的源文件。請(qǐng)注意,該頁(yè)的源是您前面創(chuàng)建的 HTTP 處理程序生成的 GeoRSS 訂閱源。
8. 關(guān)閉記事本。
9. 在 Internet Explorer 中的地址欄中,將以下查詢字符串附加到 URL 后,然后按 Enter。
?SearchFrom=34.000000,-118.000000
10. 驗(yàn)證生成的 GeoRSS 訂閱源包含搜索區(qū)域及其中的所有商店。
11. 關(guān)閉 Internet Explorer。
分享文章:詳解ASP.NET中如何創(chuàng)建GeoRSS訂閱源
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/coppjic.html


咨詢
建站咨詢
