![第8課矩形和多邊形查詢(xún)ppt課件_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/267245e2-42d6-485d-a94b-bd33273c150a/267245e2-42d6-485d-a94b-bd33273c150a1.gif)
![第8課矩形和多邊形查詢(xún)ppt課件_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/267245e2-42d6-485d-a94b-bd33273c150a/267245e2-42d6-485d-a94b-bd33273c150a2.gif)
![第8課矩形和多邊形查詢(xún)ppt課件_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/267245e2-42d6-485d-a94b-bd33273c150a/267245e2-42d6-485d-a94b-bd33273c150a3.gif)
![第8課矩形和多邊形查詢(xún)ppt課件_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/267245e2-42d6-485d-a94b-bd33273c150a/267245e2-42d6-485d-a94b-bd33273c150a4.gif)
![第8課矩形和多邊形查詢(xún)ppt課件_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/20/267245e2-42d6-485d-a94b-bd33273c150a/267245e2-42d6-485d-a94b-bd33273c150a5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、矩形和多邊形查詢(xún)矩形和多邊形查詢(xún)2019年10月主要內(nèi)容主要內(nèi)容o 自定義矩形查詢(xún)自定義矩形查詢(xún)o 自定義多邊形查詢(xún)自定義多邊形查詢(xún)o 彌補(bǔ)自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)彌補(bǔ)自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)自定義矩形自定義矩形o 用戶(hù)自行指定的矩形區(qū)域用戶(hù)自行指定的矩形區(qū)域和自定義點(diǎn)有何不同?和自定義點(diǎn)有何不同?o 點(diǎn)所在的區(qū)域點(diǎn)所在的區(qū)域o 和矩形有所重疊的區(qū)域和矩形有所重疊的區(qū)域是哪一個(gè)矩形?是哪一個(gè)矩形?是哪一個(gè)矩形?是哪一個(gè)矩形?o 從屏幕上的矩形到地圖層面的矩形從屏幕上的矩形到地圖層面的矩形o 思緒:思緒:o (1 1得到屏幕上的矩形;得到屏幕上的矩形;o (2 2得到對(duì)角線上的頂點(diǎn);得到對(duì)角線上的頂點(diǎn);
2、o (3 3把屏幕上的頂點(diǎn)轉(zhuǎn)換成地圖上的頂點(diǎn)把屏幕上的頂點(diǎn)轉(zhuǎn)換成地圖上的頂點(diǎn);o (4 4由地圖上頂點(diǎn)構(gòu)成地圖上的矩形。由地圖上頂點(diǎn)構(gòu)成地圖上的矩形。得到屏幕上的矩形得到屏幕上的矩形(x, y)heightWidth把屏幕上的矩形轉(zhuǎn)換成地圖上的矩形把屏幕上的矩形轉(zhuǎn)換成地圖上的矩形o Point 點(diǎn)對(duì)象,由(x, y)確定位置o 矩形對(duì)象的創(chuàng)建包絡(luò)對(duì)象的創(chuàng)建o Envelope env1=new Envelope();o Envelope env1=new Envelope(左上角,右下角);空間查詢(xún)空間查詢(xún)o 和矩形有所重疊的區(qū)域和矩形有所重疊的區(qū)域空間查詢(xún)空間查詢(xún)o 使用查詢(xún)功能對(duì)象,以及空
3、間過(guò)濾對(duì)象使用查詢(xún)功能對(duì)象,以及空間過(guò)濾對(duì)象o 查詢(xún)功能對(duì)象查詢(xún)功能對(duì)象o IQueryFuncitionality func=資源對(duì)象資源對(duì)象.CreateFunctionality();如何查詢(xún)?nèi)绾尾樵?xún)使用空間過(guò)濾對(duì)象使用空間過(guò)濾對(duì)象o 空間過(guò)濾對(duì)象空間過(guò)濾對(duì)象SpatialFilterSpatialFilter對(duì)象,在對(duì)象,在ESRI.ArcGIS.ADF.WebESRI.ArcGIS.ADF.Web命名空間中命名空間中o SpatialFilter SpatialFilter 對(duì)象名對(duì)象名=new =new SpatialFilter();SpatialFilter();o 設(shè)置其屬性
4、設(shè)置其屬性o 對(duì)象名對(duì)象名.Geometry=.Geometry=地圖上指定的圖形地圖上指定的圖形o 對(duì)象名對(duì)象名.MaxRecords=.MaxRecords=結(jié)果集中能容納的數(shù)量結(jié)果集中能容納的數(shù)量主要編程步驟主要編程步驟o 地圖控件地圖控件地圖資源對(duì)象地圖資源對(duì)象功能對(duì)象查詢(xún)功能對(duì)象查詢(xún))查詢(xún)功能經(jīng)過(guò)空間過(guò)濾對(duì)象查詢(xún)功能經(jīng)過(guò)空間過(guò)濾對(duì)象空間要素空間要素集集轉(zhuǎn)換成轉(zhuǎn)換成htm標(biāo)記并在地圖上高亮度顯標(biāo)記并在地圖上高亮度顯示。示。編程結(jié)構(gòu)o 一個(gè)對(duì)事件的響應(yīng)類(lèi)IdentifyRectangleo 一個(gè)輔助類(lèi)IdentifyHelper,用于作為類(lèi)庫(kù)具體實(shí)現(xiàn)具體實(shí)現(xiàn)o 得到地圖服務(wù)項(xiàng)目的功能o
5、得到查詢(xún)功能具體實(shí)現(xiàn)具體實(shí)現(xiàn)o 創(chuàng)建空間過(guò)濾對(duì)象,并設(shè)置其創(chuàng)建空間過(guò)濾對(duì)象,并設(shè)置其具體實(shí)現(xiàn)具體實(shí)現(xiàn)o 得到圖層對(duì)象o 在各個(gè)圖層中進(jìn)行空間查詢(xún),結(jié)果放在一個(gè)dataTable對(duì)象中具體實(shí)現(xiàn)具體實(shí)現(xiàn)o 把表轉(zhuǎn)換成html標(biāo)記,并在地圖上顯示出主要步驟主要步驟1 1增加增加ToolBarToolBar上面的按鈕,設(shè)置其屬性上面的按鈕,設(shè)置其屬性2 2增加必要的類(lèi)增加必要的類(lèi)IdenfifyRectangleIdenfifyRectangle,實(shí)現(xiàn),實(shí)現(xiàn)IMapServerToolAction.ServerActionIMapServerToolAction.ServerAction方法。方法。
6、用于把矩形對(duì)角的兩個(gè)點(diǎn)坐標(biāo)從屏幕轉(zhuǎn)換到地圖坐用于把矩形對(duì)角的兩個(gè)點(diǎn)坐標(biāo)從屏幕轉(zhuǎn)換到地圖坐標(biāo)。再利用標(biāo)。再利用EnvelopeEnvelope類(lèi)的構(gòu)造函數(shù)構(gòu)造一個(gè)地圖坐類(lèi)的構(gòu)造函數(shù)構(gòu)造一個(gè)地圖坐標(biāo)的矩形對(duì)象。標(biāo)的矩形對(duì)象。3 3在在IdentifyHelperIdentifyHelper中增加相應(yīng)的方法中增加相應(yīng)的方法IdentifyIdentify,用來(lái)實(shí)現(xiàn)矩形的查詢(xún)。用來(lái)實(shí)現(xiàn)矩形的查詢(xún)。3 31 1 獲取控件對(duì)象獲取控件對(duì)象3 32 2 得到目標(biāo)對(duì)象的空間矩形得到目標(biāo)對(duì)象的空間矩形主要步驟主要步驟4 4在在IdentifyHelperIdentifyHelper中增加相應(yīng)的方法中增加相應(yīng)的方
7、法4 41 1 判別資源是否可用,是否具有查詢(xún)功能判別資源是否可用,是否具有查詢(xún)功能4 42 2 若資源具有查詢(xún)功能,則得到其查詢(xún)功能。若資源具有查詢(xún)功能,則得到其查詢(xún)功能。4 43 3 依據(jù)原有的矩形,構(gòu)造一個(gè)空間查詢(xún)矩形對(duì)象。依據(jù)原有的矩形,構(gòu)造一個(gè)空間查詢(xún)矩形對(duì)象。4 44 4 取出可查詢(xún)圖層,到一個(gè)查詢(xún)結(jié)果圖層數(shù)組。取出可查詢(xún)圖層,到一個(gè)查詢(xún)結(jié)果圖層數(shù)組。4 45 5 從可查詢(xún)圖層中,查詢(xún)每個(gè)圖層中的對(duì)象。從可查詢(xún)圖層中,查詢(xún)每個(gè)圖層中的對(duì)象。4 46 6 送到網(wǎng)頁(yè)上顯示。送到網(wǎng)頁(yè)上顯示。主要步驟主要步驟5 5其他輔助函數(shù)其他輔助函數(shù)5 51 1 編寫(xiě)一個(gè)函數(shù),利用編寫(xiě)一個(gè)函數(shù),利用G
8、ridViewGridView將數(shù)據(jù)表中內(nèi)容顯示將數(shù)據(jù)表中內(nèi)容顯示到表格中,其中借助到表格中,其中借助HtmlTextWriterHtmlTextWriter類(lèi),將表格的內(nèi)類(lèi),將表格的內(nèi)容轉(zhuǎn)換成容轉(zhuǎn)換成htmlhtml格式的字符串。格式的字符串。5 52 2 編寫(xiě)另一個(gè)函數(shù),將數(shù)據(jù)表轉(zhuǎn)換成編寫(xiě)另一個(gè)函數(shù),將數(shù)據(jù)表轉(zhuǎn)換成htmlhtml表格格式的表格格式的字符串,并把該字符串賦值給地圖網(wǎng)頁(yè)上的一個(gè)隱藏字符串,并把該字符串賦值給地圖網(wǎng)頁(yè)上的一個(gè)隱藏的文本框控件,調(diào)用的文本框控件,調(diào)用openopen方法,彈出方法,彈出“屬性查詢(xún)頁(yè)面屬性查詢(xún)頁(yè)面”。5 53 3 通過(guò)地圖控件的通過(guò)地圖控件的Call
9、BackResultsCallBackResults屬性中設(shè)定事屬性中設(shè)定事件響應(yīng)機(jī)制,設(shè)定響應(yīng)的事件,以及事件響應(yīng)函數(shù)。件響應(yīng)機(jī)制,設(shè)定響應(yīng)的事件,以及事件響應(yīng)函數(shù)。6 6編寫(xiě)一個(gè)彈出信息屬性窗口的網(wǎng)頁(yè)編寫(xiě)一個(gè)彈出信息屬性窗口的網(wǎng)頁(yè)課堂實(shí)踐課堂實(shí)踐o 自定義矩形查詢(xún):自定義矩形查詢(xún):P93-P96P93-P96o 補(bǔ):自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)補(bǔ):自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)課堂實(shí)踐課堂實(shí)踐o 自定義矩形查詢(xún):自定義矩形查詢(xún):P93-P96P93-P96自定義多邊型查詢(xún)自定義多邊型查詢(xún)實(shí)現(xiàn)步驟實(shí)現(xiàn)步驟1. 1. 給自定義給自定義ToolTool增加一個(gè)地圖關(guān)聯(lián)事件,設(shè)定關(guān)聯(lián)的響應(yīng)。增加一個(gè)地圖關(guān)聯(lián)事件,設(shè)
10、定關(guān)聯(lián)的響應(yīng)。2. 2. 響應(yīng)之處實(shí)現(xiàn)一個(gè)響應(yīng)之處實(shí)現(xiàn)一個(gè)IMapServerToolActionIMapServerToolAction接口的接口的ServerActionServerAction函數(shù):函數(shù):(1 1得到地圖控件得到地圖控件(2 2得到地圖控件上被指定的圖形。得到地圖控件上被指定的圖形。(3 3得到圖形所對(duì)應(yīng)或覆蓋到的對(duì)象。得到圖形所對(duì)應(yīng)或覆蓋到的對(duì)象。(4 4把屏幕對(duì)象映射到地圖對(duì)象。把屏幕對(duì)象映射到地圖對(duì)象。(5 5得到地圖對(duì)象位置所對(duì)應(yīng)的圖層的各個(gè)對(duì)象。得到地圖對(duì)象位置所對(duì)應(yīng)的圖層的各個(gè)對(duì)象。(6 6把結(jié)果送給網(wǎng)頁(yè)窗口顯示。把結(jié)果送給網(wǎng)頁(yè)窗口顯示。(7 7接收并把結(jié)果轉(zhuǎn)
11、換成接收并把結(jié)果轉(zhuǎn)換成htmlhtml格式的字符串,通過(guò)地圖控件的回格式的字符串,通過(guò)地圖控件的回傳處理函數(shù),把字符串顯示在彈出的網(wǎng)頁(yè)上。傳處理函數(shù),把字符串顯示在彈出的網(wǎng)頁(yè)上。 自定義自定義o 自定義多邊形的獲取自定義多邊形的獲取o 從屏幕上的多邊形得到地圖上的多邊形從屏幕上的多邊形得到地圖上的多邊形o o 以多邊形為過(guò)濾條件進(jìn)行空間查詢(xún)以多邊形為過(guò)濾條件進(jìn)行空間查詢(xún)o 自定義多邊形的獲取自定義多邊形的獲取從屏幕上的多邊形得到地圖上的多邊形從屏幕上的多邊形得到地圖上的多邊形o 從屏幕上的多邊形得到各個(gè)拐點(diǎn)點(diǎn)的集合從屏幕上的多邊形得到各個(gè)拐點(diǎn)點(diǎn)的集合)o 把屏幕上各點(diǎn)轉(zhuǎn)換成地圖上的對(duì)應(yīng)點(diǎn)把屏幕
12、上各點(diǎn)轉(zhuǎn)換成地圖上的對(duì)應(yīng)點(diǎn)o 把地圖上的各點(diǎn)形成地圖上的多邊形把地圖上的各點(diǎn)形成地圖上的多邊形多邊形轉(zhuǎn)換多邊形轉(zhuǎn)換o 從屏幕上的多邊形得到各個(gè)拐點(diǎn)點(diǎn)的集合從屏幕上的多邊形得到各個(gè)拐點(diǎn)點(diǎn)的集合),把屏幕上各點(diǎn)轉(zhuǎn)換成地圖上的對(duì)應(yīng)點(diǎn)),把屏幕上各點(diǎn)轉(zhuǎn)換成地圖上的對(duì)應(yīng)點(diǎn)多邊形轉(zhuǎn)換多邊形轉(zhuǎn)換o 把地圖上的各點(diǎn)形成地圖上的多邊形把地圖上的各點(diǎn)形成地圖上的多邊形o 知識(shí):從地圖上的點(diǎn)集合,形成到地圖上的環(huán),到知識(shí):從地圖上的點(diǎn)集合,形成到地圖上的環(huán),到地圖上的多邊形地圖上的多邊形o RingRing是是ESRI. ArcGIS. ADF. Web. Geometry. RingESRI. ArcGIS. A
13、DF. Web. Geometry. Ringo RingCollectionRingCollection是是ESRI.ArcGIS.ADF.Web.Geometry.RingCollectionESRI.ArcGIS.ADF.Web.Geometry.RingCollection后續(xù)任務(wù)后續(xù)任務(wù)o 空間查詢(xún),得到查詢(xún)結(jié)果集空間查詢(xún),得到查詢(xún)結(jié)果集o 查詢(xún)結(jié)果集轉(zhuǎn)換、顯示查詢(xún)結(jié)果集轉(zhuǎn)換、顯示自定義多邊形查詢(xún)屬性的實(shí)現(xiàn)自定義多邊形查詢(xún)屬性的實(shí)現(xiàn)o 仍然需要一個(gè)響應(yīng)類(lèi),和支持類(lèi)的輔助。仍然需要一個(gè)響應(yīng)類(lèi),和支持類(lèi)的輔助。o 對(duì)于自定義多變形查詢(xún)來(lái)說(shuō)對(duì)于自定義多變形查詢(xún)來(lái)說(shuō) ,需要增加一,需要增加一
14、個(gè)函數(shù),實(shí)現(xiàn)多邊形坐標(biāo)系統(tǒng)的轉(zhuǎn)換。個(gè)函數(shù),實(shí)現(xiàn)多邊形坐標(biāo)系統(tǒng)的轉(zhuǎn)換。 響應(yīng)類(lèi)響應(yīng)類(lèi)public class IdentifyPolygon : IMapServerToolActionpublic class IdentifyPolygon : IMapServerToolAction void IMapServerToolAction.ServerAction(ToolEventArgs void IMapServerToolAction.ServerAction(ToolEventArgs args)args) Map map = args.Control as Map; Map map
15、= args.Control as Map; PolygonEventArgs polyArgs = PolygonEventArgs polyArgs = (PolygonEventArgs)args;(PolygonEventArgs)args; Polygon mapPoly = Polygon mapPoly = GeometryHelper.GetMapPolygon(map, polyArgs);GeometryHelper.GetMapPolygon(map, polyArgs); IdentifyHelper.Identify(map, mapPoly); IdentifyHe
16、lper.Identify(map, mapPoly); 自定義多邊形查詢(xún)屬性的實(shí)現(xiàn)自定義多邊形查詢(xún)屬性的實(shí)現(xiàn)o 仍然需要一個(gè)響應(yīng)類(lèi),和支持類(lèi)共仍然需要一個(gè)響應(yīng)類(lèi),和支持類(lèi)共2 2個(gè)個(gè)IdentifyHelpeIdentifyHelpe、GeometryHelperGeometryHelper的輔助的輔助。o 對(duì)于自定義多變形查詢(xún)來(lái)說(shuō)對(duì)于自定義多變形查詢(xún)來(lái)說(shuō) ,需要增加一,需要增加一個(gè)函數(shù),實(shí)現(xiàn)多邊形坐標(biāo)系統(tǒng)的轉(zhuǎn)換。個(gè)函數(shù),實(shí)現(xiàn)多邊形坐標(biāo)系統(tǒng)的轉(zhuǎn)換。 響應(yīng)類(lèi)響應(yīng)類(lèi)public class IdentifyPolygon : IMapServerToolActionpublic class Id
17、entifyPolygon : IMapServerToolAction void IMapServerToolAction.ServerAction(ToolEventArgs void IMapServerToolAction.ServerAction(ToolEventArgs args)args) Map map = args.Control as Map; Map map = args.Control as Map; PolygonEventArgs polyArgs = PolygonEventArgs polyArgs = (PolygonEventArgs)args;(Poly
18、gonEventArgs)args; Polygon mapPoly = Polygon mapPoly = GeometryHelper.GetMapPolygon(map, polyArgs);GeometryHelper.GetMapPolygon(map, polyArgs); IdentifyHelper.Identify(map, mapPoly); IdentifyHelper.Identify(map, mapPoly); 支持類(lèi)的成員支持類(lèi)的成員opublic static void Identify(Map map, ESRI.ArcGIS.ADF.Web.Geometry
19、.Geometry mapGeometry) opublic static void ShowIdentifyResult(Map map, DataTableCollection dtc)opublic static string GetHtmlFromDataTable(DataTable dt)opublic static void AddJavaScriptCallback(Map map, string executeString)Identify()方法的作用及組成步驟o IdentifyHelper.Identify(mapCtrl, IdentifyHelper.Identif
20、y(mapCtrl, mapGeometry) mapGeometry) ,接受傳遞而來(lái)的參量數(shù)值。,接受傳遞而來(lái)的參量數(shù)值。o 判別資源是否可用,是否具有查詢(xún)功能,若資源具判別資源是否可用,是否具有查詢(xún)功能,若資源具有查詢(xún)功能,則得到其查詢(xún)功能。有查詢(xún)功能,則得到其查詢(xún)功能。 o 依據(jù)原有的形狀對(duì)象,構(gòu)造一個(gè)空間查詢(xún)對(duì)象。依據(jù)原有的形狀對(duì)象,構(gòu)造一個(gè)空間查詢(xún)對(duì)象。 利用該查詢(xún)對(duì)象從可查詢(xún)圖層中過(guò)濾出查詢(xún)結(jié)果圖利用該查詢(xún)對(duì)象從可查詢(xún)圖層中過(guò)濾出查詢(xún)結(jié)果圖層數(shù)組。層數(shù)組。o 從可查詢(xún)圖層數(shù)組中查詢(xún)每個(gè)圖層中的對(duì)象遍歷從可查詢(xún)圖層數(shù)組中查詢(xún)每個(gè)圖層中的對(duì)象遍歷),送到一個(gè)),送到一個(gè)dataSet
21、dataSet中。中。o 再把再把dataSetdataSet的的TableTable送到送到DataTableCollectionDataTableCollection對(duì)對(duì)象中。象中。o 形成形成HtmlHtml字符串,送給瀏覽器顯示。字符串,送給瀏覽器顯示。 對(duì)比在響應(yīng)類(lèi)中的處理部分對(duì)比在響應(yīng)類(lèi)中的處理部分Map map = args.Control as Map; 點(diǎn)查詢(xún):點(diǎn)查詢(xún): PointEventArgs pea = (PointEventArgs)args; System.Drawing.Point screen_point = pea.ScreenPoint; Point po
22、int = Point.ToMapPoint(); 矩形查詢(xún)矩形查詢(xún)RectangleEventArgs rectargs = (RectangleEventArgs)args;System.Drawing.Rectangle myrect = rectargs.ScreenExtent; 頂點(diǎn)坐標(biāo)轉(zhuǎn)換;形成地圖上的矩形頂點(diǎn)坐標(biāo)轉(zhuǎn)換;形成地圖上的矩形;IdentifyHelper.Identify(mapCtrl, mapGeometry);多邊形查詢(xún)多邊形查詢(xún) PolygonEventArgs polyArgs = (PolygonEventArgs)args; Polygon mapPol
23、y = GeometryHelper.GetMapPolygon(map, polyArgs); IdentifyHelper.Identify(map, mapPoly);圓查詢(xún)圓查詢(xún)CircleEventArgs circleArgs = (CircleEventArgs)args;Polygon mapPoly = GeometryHelper.GetMapPolygon(map, circleArgs); IdentifyHelper.Identify(map, map mapGeometry); 課堂實(shí)踐課堂實(shí)踐o 自定義多邊形查詢(xún):自定義多邊形查詢(xún):P96-P97P96-P97o
24、補(bǔ):自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)補(bǔ):自定義點(diǎn)查詢(xún)編程實(shí)現(xiàn)o 自定義矩形查詢(xún)編程實(shí)現(xiàn)自定義矩形查詢(xún)編程實(shí)現(xiàn)課堂實(shí)踐課堂實(shí)踐o 自定義矩形查詢(xún):自定義矩形查詢(xún):P93-P96P93-P96o 自定義多邊形查詢(xún):自定義多邊形查詢(xún):P96-P97P96-P97o 程序錄入:程序錄入:o 建立一個(gè)類(lèi)庫(kù)建立一個(gè)類(lèi)庫(kù)GisFunctionalityGisFunctionality,在其中輸,在其中輸入函數(shù)入函數(shù)P103(2)P103(2)、P104(2)P104(2)、P105(5)P105(5)自定義圓查詢(xún)的實(shí)現(xiàn)自定義圓查詢(xún)的實(shí)現(xiàn) o程序?qū)崿F(xiàn)機(jī)制和自定義多邊形查詢(xún)屬程序?qū)崿F(xiàn)機(jī)制和自定義多邊形查詢(xún)屬性一致。性一致。
25、o程序結(jié)構(gòu)是:響應(yīng)類(lèi)、支持類(lèi)、圖形程序結(jié)構(gòu)是:響應(yīng)類(lèi)、支持類(lèi)、圖形轉(zhuǎn)換類(lèi)、彈出網(wǎng)頁(yè)。轉(zhuǎn)換類(lèi)、彈出網(wǎng)頁(yè)。響應(yīng)類(lèi)響應(yīng)類(lèi)IdentifyCircleIdentifyCircle類(lèi)類(lèi)public class IdentifyCircle : IMapServerToolActionpublic class IdentifyCircle : IMapServerToolAction void IMapServerToolAction.ServerAction(ToolEventArgs args) void IMapServerToolAction.ServerAction(ToolEventArgs
26、args) Map map = args.Control as Map; Map map = args.Control as Map; CircleEventArgs circleArgs = (CircleEventArgs)args; CircleEventArgs circleArgs = (CircleEventArgs)args; Polygon mapPoly = GeometryHelper.GetMapPolygon(map, Polygon mapPoly = GeometryHelper.GetMapPolygon(map, circleArgs);circleArgs);
27、 IdentifyHelper.Identify(map, mapPoly); IdentifyHelper.Identify(map, mapPoly); 需要使用類(lèi)的介紹需要使用類(lèi)的介紹o GraphicsPathGraphicsPath類(lèi),表示一系列相互連接的直類(lèi),表示一系列相互連接的直線和曲線。線和曲線。o GraphicsPath. FlattenGraphicsPath. Flatten(),將此路徑中(),將此路徑中的各段曲線轉(zhuǎn)換成相連的線段序列。的各段曲線轉(zhuǎn)換成相連的線段序列。o MatrixMatrix類(lèi),是一個(gè)矩陣類(lèi),類(lèi),是一個(gè)矩陣類(lèi),o Matrix .Translate
28、()Matrix .Translate()方法用于實(shí)現(xiàn)一個(gè)矩方法用于實(shí)現(xiàn)一個(gè)矩陣轉(zhuǎn)換。陣轉(zhuǎn)換。public static ESRI.ArcGIS.ADF.Web.Geometry.Polygon GetMapPolygon(public static ESRI.ArcGIS.ADF.Web.Geometry.Polygon GetMapPolygon(Map map, CircleEventArgs circleArgs)Map map, CircleEventArgs circleArgs) System.Drawing.Point screenPointCenter = new Syste
29、m.Drawing.Point( System.Drawing.Point screenPointCenter = new System.Drawing.Point( (int)circleArgs.CenterPoint.X,(int)circleArgs.CenterPoint.Y); (int)circleArgs.CenterPoint.X,(int)circleArgs.CenterPoint.Y); System.Drawing.Point screenPointBrink = new System.Drawing.Point( System.Drawing.Point scree
30、nPointBrink = new System.Drawing.Point( (int)circleArgs.CenterPoint.X, (int)circleArgs.CenterPoint.X, (int)circleArgs.CenterPoint.Y + (int)circleArgs.Radius);(int)circleArgs.CenterPoint.Y + (int)circleArgs.Radius); 從屏幕坐標(biāo)轉(zhuǎn)換到地圖坐標(biāo)從屏幕坐標(biāo)轉(zhuǎn)換到地圖坐標(biāo) Point mapPointCenter = Point.ToMapPoint(screenPointCenter, m
31、ap.Extent, (int)map.Width.Value, (int)map.Height.Value);Point mapPointBrink = Point.ToMapPoint(screenPointBrink, map.Extent, (int)map.Width.Value, (int)map.Height.Value);得到地圖坐標(biāo)中的半徑得到地圖坐標(biāo)中的半徑double radius = Math.Sqrt( (mapPointCenter.X - mapPointBrink.X) * (mapPointCenter.X - mapPointBrink.X) +(mapPo
32、intCenter.Y - mapPointBrink.Y)*(mapPointCenter.Y - mapPointBrink.Y);o 思緒:以圓心為中心畫(huà)一個(gè)橢圓,橢圓邊上思緒:以圓心為中心畫(huà)一個(gè)橢圓,橢圓邊上分為若干段,再將地圖上的點(diǎn)集合,集中到分為若干段,再將地圖上的點(diǎn)集合,集中到地圖上的線,再到地圖上的多邊形。地圖上的線,再到地圖上的多邊形。 GraphicsPath gpath = new GraphicsPath(); GraphicsPath gpath = new GraphicsPath(); gpath.AddEllipse(float)(mapPointCenter.X -
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車(chē)輛借出責(zé)任免除及駕駛規(guī)范合同
- 2025年度商務(wù)協(xié)議翻譯及全球供應(yīng)鏈管理服務(wù)合同
- 水路運(yùn)輸?shù)V石采購(gòu)合同
- 2024-2030年中國(guó)足球用品行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 機(jī)械制造工藝測(cè)試題+參考答案
- 包裝設(shè)計(jì)師模擬習(xí)題+答案
- 第六單元課外古詩(shī)詞誦讀《卜算子·黃州定慧院寓居作》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)
- 2025年新型復(fù)合型菌劑合作協(xié)議書(shū)
- 2025年阻燃塑料電表箱行業(yè)深度研究分析報(bào)告
- 人教版初中歷史與社會(huì)七年級(jí)上冊(cè) 1.2 .1鄉(xiāng)村聚落 教學(xué)設(shè)計(jì)
- 2023年部編人教版六年級(jí)道德與法治下冊(cè)全冊(cè)課件【全套】
- 肌肉注射的常見(jiàn)并發(fā)癥及預(yù)防處理措施
- 景觀模型設(shè)計(jì)與制作:第7章 建筑模型制作基本技法
- 關(guān)愛(ài)婦女防治兩癌講座課件
- DL∕T 584-2017 3kV~110kV電網(wǎng)繼電保護(hù)裝置運(yùn)行整定規(guī)程
- 2024-2030年傷口護(hù)理管理行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究分析報(bào)告
- (正式版)FZ∕T 80018-2024 服裝 防靜電性能要求及試驗(yàn)方法
- 北師大版八年級(jí)下冊(cè)生物教案全冊(cè)
- 混凝土攪拌站安全生產(chǎn)風(fēng)險(xiǎn)分級(jí)管控體系方案全套資料2021-2022完整實(shí)施方案模板
- 新生兒紅臀的預(yù)防和護(hù)理
- DL-T5704-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工質(zhì)量驗(yàn)收規(guī)程
評(píng)論
0/150
提交評(píng)論