案例mapgis igserver silverlight問題集錦_第1頁
案例mapgis igserver silverlight問題集錦_第2頁
案例mapgis igserver silverlight問題集錦_第3頁
案例mapgis igserver silverlight問題集錦_第4頁
案例mapgis igserver silverlight問題集錦_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第7 怎樣在地圖上添加一條 第8 怎樣在地圖上添加一個標注 第9 怎樣實現(xiàn)地圖窗口坐標和邏輯坐標之間的轉(zhuǎn) 第5章開發(fā)函數(shù) 第1 怎樣獲取地圖文檔圖層列 第2 怎樣更新地圖文檔中的圖層的狀 第3 怎樣獲取鼠標當前位置信 第4 怎樣添加和刪除地圖鼠標.................................................................................第5 怎樣用鼠標獲取一個 第6 怎樣用鼠標獲取一條 第7 怎樣用鼠標獲取一個矩 第8 怎樣用鼠標獲取一個 第9 怎樣用鼠標獲取一個多邊 第10問怎樣實現(xiàn)點擊查 第11問怎樣實現(xiàn)線查 第12問怎樣實現(xiàn)矩形查 第13問怎樣實現(xiàn)圓查 第14問怎樣實現(xiàn)多邊形查 第15問怎樣實現(xiàn)屬性條件查 第16問怎樣實現(xiàn)點擊+條件查 第17問怎樣實現(xiàn)線+條件查 第18問怎樣實現(xiàn)矩形+條件查 第19問怎樣實現(xiàn)圓+條件查 第20問怎樣實現(xiàn)多邊形+條件查 第21問怎樣添加一個要 第22問怎樣編輯一個要 第23問怎樣刪除一個要 第24問怎樣對一個要素做緩沖區(qū)分 第25問怎樣對查詢結(jié)果進行統(tǒng)計分 第26問怎樣實現(xiàn)圓裁 第27問怎樣實現(xiàn)多邊形裁 第28問怎樣實現(xiàn)拓撲分 第29問怎樣實現(xiàn)路徑分 第30問怎樣獲取MapGIS數(shù)據(jù)源列 第31問怎樣獲取MapGIS數(shù)據(jù)源中的數(shù)據(jù)庫列 第32問怎樣獲取MapGIS數(shù)據(jù)庫中的圖層列 第33問怎樣通過圖層索引獲取圖層名 第34問怎樣實現(xiàn)兩個圖層疊加分 第35問怎樣在操作結(jié)束后把鼠標切換回空狀 第6章高級 第1 怎樣實現(xiàn)自定義控件開 第2 怎樣實現(xiàn)GIS功能點綜合應(yīng) 第3 第1章開發(fā)第1問MapGISIGServerIGServer平臺、數(shù)據(jù)庫、瀏覽器、Flex集成開發(fā)環(huán)境。Windows WindowsXPWindows2003Windows20087。.NET環(huán)境 Web服務(wù)器 數(shù)據(jù)庫 瀏覽器:IE6以上系列版本、Firefox集成開發(fā)工具:VisualStudio第2問怎樣配置MapGISIGServer參照第一章第一問中MapGISIGServer的開發(fā)環(huán)境,在操作系統(tǒng)中安裝MapGISIGServer平臺、數(shù)據(jù)庫(根據(jù)需要選擇安裝、瀏覽器等。GIS服務(wù)器與數(shù)據(jù)庫的配置。服務(wù)器配置:安裝平臺后,在服務(wù)管理器(MapGISServerManager)中已默認配GIS服務(wù)器(DCServerIGServer服務(wù)器等各項配置。根據(jù)實際中設(shè)置IGServer相應(yīng)配置項。數(shù)據(jù)組織與發(fā)布:根據(jù)開發(fā)中采用的地圖加載方式(地圖類型MapGIS二次開發(fā)前,必須確保GIS服務(wù)器的系統(tǒng)服務(wù)中數(shù)據(jù)服務(wù)、IGS服務(wù)已啟動,同時MapGISServerManager中的DCServer服務(wù)、IGServer服務(wù)也處于啟動狀態(tài)。圖1-1啟動數(shù)據(jù)服務(wù)與IGS服1-2DCS與IGS第3問怎樣配置SilverlightSilverlight4的二次開發(fā)環(huán)境,需要安裝配置VisualStudio2010集成開發(fā)環(huán)境,Silverlight4ToolsforVisualStudio2010、Silverlight_4_Toolkit(Silverlight4控件安裝包)以及Silverlight客戶端插件,具體的環(huán)境配置如下:1、安裝VisualStudioMapGISIGServerSilverlight4VisualStudio2010,4應(yīng)用程序。公司VisualStudio2010地址為: 2、安裝Silverlight4ToolsforVisualStudio2010Silverlight4ToolsforVisualStudio2010是用于VisualStudio2010或VisualWebDeveloper2010學習版的一個加載項,它為在Silverlight中創(chuàng)建應(yīng)用程序提供若干功能。在安裝Silverlight4Tools時,將安裝以下組件。Silverlight4DeveloperSilverlight4Silverlight4VisualStudioWCFRIA服務(wù)公司官網(wǎng)地址: Silverlight_4_ToolkitSilverlight4的控件集成安裝包,以方便開發(fā)人員開發(fā)。官網(wǎng)地址:/releases/view/43528第4問SilverlightMapGISIGServerSDK包括兩個部分:一套為基礎(chǔ)開發(fā)庫,不允許用戶修 GPS導航 成。Silverlight開源庫主要功能控件及說明如下:1-3Silverlight開發(fā)開源庫控件(主要AnnotationStyleEditorPointStyle OGCCatalog、OGCConditionInput件圖層類控LayerConditionInPutLayerDataViewer目前,SilverlightSDK1.0。關(guān)于MapGISIGServer基于SilverlightSDK的更新,請隨時關(guān)注MapGIS發(fā)布信息。第5問MapGISIGServerSilverlight在Silverlight集成開發(fā)環(huán)境(→VisualStudio2010)中創(chuàng)建MapGISIGServerSilverlight的新工程,具體步驟如下:1-3VisualStudio20101-4VisualStudio2010中新建工程(二SlApp,單擊“瀏覽”選擇工程存放的路徑,如下圖所示:1-51-6新建Silverlight5、此時在解決方案視圖中有2個項目,SlApp和SlApp.web,選擇SlApp 1-8添加MapGISIGServer提供的dll文件的或者在示例站點ZDIMSDemo的Debug 1-9選擇MapGISIGServer提供的dllSilverlight二次開發(fā)庫的控件添加到開發(fā)集成環(huán)境。選擇“視圖->工具箱”,在“常規(guī)”1-101-11添加自定義控件(二8ZDIMS1.0.dll,可以看到新加入的控件被勾選,單擊確定,完成MapGISK9IMSSilverlight控件的導入,如下圖所示:1-12選擇dll1-13SilverlightMapGISIGServer平臺的二次開發(fā)了。第6問怎樣使用MapGISIGServerSLMapGISIGServerSilverlightdll,是一個單獨提供的動ZDIMS1.0.dlldebug(ZDIMSDemo\Bin\Debug中。MapGISIGServerSilverlightSilverlight項目時直接引zdimsdll庫。詳細操作可參考本章第5問創(chuàng)建一個Silverlight工程的操作。MapGISIGServerSilverlight的開源功能組件,位于開源示例站點的調(diào) 1-14要使用MapGISIGServerSilverlight的開源功能組件,需要將示例站點的動態(tài)庫圖1-15開源1-16第7問怎樣更新MapGISIGServerSLMapGISIGServerSilverlight功能組件,分別將基本功能組件庫和開源功能組件的“” 處先移除功能庫對應(yīng)的dll(ZDIMS1.0.dll或ZDIMSDemo.dll然后再第8問新建一個Silverlight用戶控件,打開*.xaml<<UserControlxmlnsx="d:DesignHeight="300"d:DesignWidth="400"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="200"/>usingZDIMS.Map;namespaceSlApp{publicpartialusingZDIMS.Map;namespaceSlApp{publicpartialclassMapContainer_s:{publicMapContainer_s(){}publicvoid{m_mapContainer.Width=800;m_mapContainer.Height=600;m_mapContainer.VerticalAlignment=VerticalAlignment.Center;m_mapContainer.Margin=newThickness(10,10,0,0);}}}第9問1TileLayer控件,將其入瓦片數(shù)據(jù)名稱比如WhMap和ServerAddress服務(wù)器地址比如AutoGetMapInfoXAML<UserControl<UserControl d:DesignHeight="300"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="253">Width="200"AutoGetMapInfo="True"HdfName="WhMap" "usingZDIMS.Map;namespace{publicpartialclassMapTile_s:{usingZDIMS.Map;namespace{publicpartialclassMapTile_s:{privateTileLayerm_tile=null;public{}publicvoid{m_mapContainer=new{XMinMap=YMinMap=XMaxMap=YMaxMap=m_mapContainer.Height=m_mapContainer.Margin=newThickness(10,10,0,m_tile=newTileLayer(){HdfName="WhMap",ServerAddress=""}}}中輸入瓦片數(shù)據(jù)名稱比如wh和ServerAddress服務(wù)器地址比如<<UserControl d:DesignHeight="300"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="275">Name="vectorMapDoc1"Width="200"AutoGetMapInfo="True" "/>usingnamespace{usingnamespace{publicpartialclassMapVector_s:{privateVectorMapDocm_vector=null;publicMapVector_s(){}publicvoid{m_mapContainer=new{Width=Height=Margin=newThickness(10,10,0,XMinMap=YMinMap=XMaxMap=YMaxMap=m_vector=new{ame="wh",ServerAddress=""}}}}<UserControl<UserControld:DesignHeight="300"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="341">Width="200"AutoGetMapInfo="True"HdfName="WhMap" "Name="vectorMapDoc1"Width="200""usingZDIMS.Map;namespaceusingZDIMS.Map;namespace{publicpartialclassMapTileDoc_s:{privateIMSMapm_mapContainer=null;privateTileLayerm_tile=null;publicMapTileDoc_s(){}publicvoid{m_mapContainer=new{Width=Height=Margin=newThickness(10,10,0,m_tile=new{HdfName="WhMap", m_vector=new{ame= }}}<UserControl <UserControl d:DesignHeight="300"d:DesignWidth="400"<Gridx:Name="LayoutRoot"<ColumnDefinitionWidth="194*"<ColumnDefinitionWidth="206*"Name="iMSMap1"VerticalAlignment="Top"Width="153">Width="68"AutoGetMapInfo="True"HdfName="WhMap" "Name="iMSMap2"VerticalAlignment="Top"Width="153"Grid.Column="1">Width="68"AutoGetMapInfo="True"HdfName="WhMap" "usingZDIMS.Map;namespace{publicpartialclassMapMulti_s:{privateIMSMapm_mapContainer_l=null;privateIMSMapm_mapContainer_r=null;privateTileLayerm_tile_l=null;publicMapMulti_s(){}publicvoid{m_mapContainer_l.Width=400;m_mapContainer_l.Height=m_mapContainer_l.Margin=newThickness(10,10,390,0);m_tile_l=newTileLayer(){HdfName="WhMap", m_mapContainer_r=newIMSMap();m_mapContainer_r.Width=400;m_mapContainer_r.Height=m_mapContainer_r.Margin=newThickness(450,10,0,0);m_tile_r=newTileLayer(){HdfName="WhMap","}}}2Button控件個標注類IMSMark的對象,把BitmapImage對象的傳入這個標注類對象,最后將IMSMark作為標注接口添加到MarkLayer的對象中。<<UserControl d:DesignHeight="600"d:DesignWidth="800"<Gridx:Name="LayoutRoot"VerticalAlignment="Top"Width="600"Margin="163,42,0,0">Width="200"HdfName="WhMap"AutoGetMapInfo="True" "<ButtonContent="添加 Name="addPic"VerticalAlignment="Top"Width="75"Click="addPic_Click"/>usingZDIMS.Map;usingZDIMS.Event;usingusingSystem.Windows.Media.Effects;usingnamespace{publicpartialclassMapPicture:{publicMapPicture(){}publicvoid{m_markLayer=newMarkLayer();m_markLayer.EnableGPUMode=true;}privatevoidaddPic_Click(objectsender,RoutedEventArgs{//IMSMarkmark;m_markLayer.EnableMarkHiden=false;m_markLayer.EnablePolymericMark=true;mark=newIMSMark(newImage(){

Width=HeightHeight=mark.X=114.2879;mark.Y=}}}<UserControl<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="615">Name="iMSEagleEye1"Width="140">Name="vectorMapDoc1"Width="33" ame="wh"AutoGetMapInfo="True" "/>Width="200"HdfName="WhMap"AutoGetMapInfo="True" "usingZDIMS.Map;namespace{publicusingZDIMS.Map;namespace{publicpartialclassMapEagleDif_s:{privateIMSEagleEyem_eagle=null;privateVectorMapDocm_vector=null;privateTileLayerm_tile=null;public{}publicvoid{m_mapContainer=new{Width=Height=Margin=newThickness(10,10,0,m_eagle=newIMSEagleEye();{{ame="wh",ServerAddress=""m_tile=newTileLayer(){HdfName="WhMap",ServerAddress=""}}}<UserControl <UserControl d:DesignHeight="600"d:DesignWidth="800"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="566">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" Name="iMSEagleEye1"Width="200"/>Name="switchEagle"VerticalAlignment="Top"Width="75"Click="switchEagle_Click"/>namespacenamespace{publicpartialclassExgEagle:{public{}privatevoidswitchEagle_Click(objectsender,RoutedEventArgs{}}}端用戶顯示什么地圖數(shù)據(jù)。ButtonshowHDF函數(shù)顯示瓦片地圖,點擊本個調(diào)用showDoc顯示地圖文檔。<<UserControld:DesignHeight="600"d:DesignWidth="800"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="596"/><ButtonContent="顯示地圖文檔"Height="23"HorizontalAlignment="Left"<ButtonContent="顯示地圖文檔"Height="23"HorizontalAlignment="Left"namespacenamespace{publicpartialclassDiffMap:{privateTileLayerm_tile=null;public{}{if(m_tile!=null)if(m_vector=={ame="wh";m_vector.ServerAddress="}}privatevoidshowHDF_Click(objectsender,RoutedEventArgs{if(m_vector!=null)if(m_tile=={m_tile=newTileLayer();m_tile.AutoGetMapInfo=}}}}第18片地圖顯示,然后拖動兩個Button控件到界面中,給第一個Button的鼠標點擊賦值響<<UserControld:DesignHeight="600"d:DesignWidth="800"<<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="533">Width="200"AutoGetMapInfo="True"HdfName="WhMap" "Name="getWidth"VerticalAlignment="Top"Width="75"Click="getWidth_Click"/>Name="getHeight"VerticalAlignment="Top"Width="75"MouseMove="getHeight_MouseMove"/>namespacenamespace{publicpartialclassMouseEvent:{public{}{}{}{}}}顯示范圍(xMinMapyMinMapxMaxMapyMaxMap)屬性一定要設(shè)置,或者將AutoGetMapInfo屬性設(shè)置true,該情況下的顯示范圍屬性可以設(shè)置為任何自己想要初始化時第20問什么原因?qū)е卤緳C可以出圖但其他機器不能出1、如果本地可以出圖,發(fā)布Silverlight應(yīng)用程序后在客戶端如果不能正常如圖,則可能原因是客戶端瀏覽器設(shè)置了導致不能到Silverlight應(yīng)用程序。2、如果用VisualStudio2010調(diào)試或運行程序能正常顯示地圖,而發(fā)布后不能正常顯示地圖,則可能是本地計算機設(shè)置了導致Silverlight應(yīng)用發(fā)布后不能到GIS第1問2Button控件,如果要想在鼠標點擊這個按鈕的時候讓地圖復位,則需要進行以下幾步操作:首先,添加一個onclick()為IMSOperype.RestoreButton控件的click屬性賦值為oncick()。<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"AutoGetMapInfo="True" "Name="restore"VerticalAlignment="Top"Width="75"Click="restore_Click"/>usingusingnamespace{publicpartialclassRestore:{publicpublic{}{}}}第2問2Button控件,如果要想在鼠標點擊這個按鈕的時候讓地圖刷新,則需要進行以下幾步操作:首先,添加一個onclick()<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"AutoGetMapInfo="True" Name="refresh"VerticalAlignment="Top"Width="75"Click="refresh_Click"/>usingusingnamespace{publicpartialclassRefresh:{public{}privatevoidrefresh_Click(objectsender,RoutedEventArgs{}}}第3問2Button控件,如果要想在鼠添加一個onclick()函數(shù),用來處理按鈕的鼠標點擊,這個函數(shù)調(diào)用IMSMap控件的setLevelTextBox3,表示讓地圖顯示第三級的數(shù)據(jù);然后給Button控件的click屬性賦值為oncick()。<<UserControld:DesignHeight="600"d:DesignWidth="900"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"AutoGetMapInfo="True" "Text="輸入地圖顯示級數(shù)"VerticalAlignment="Top"/>VerticalAlignment="Top"Width="43"Name="txtLevel"/>Name="setLevel"VerticalAlignment="Top"Width="75"Click="setLevel_Click"/>usingusingnamespace{publicpartialclassSetLevel:{public{}{}}}第42Button控件,如果要想在鼠(14.2,30.5<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="setCenter"VerticalAlignment="Top"Width="75"Click="setCenter_Click"/>namespacenamespace{publicpartialclassSetCenter:{public{}privatevoidsetCenter_Click(objectsender,RoutedEventArgs{}}}第5問怎樣移動地圖至某一位置2Button控件,如果要想在鼠個函數(shù)調(diào)用IMSMap控件的panTo函數(shù),傳入?yún)?shù)為(114.2,30.5),表示讓地圖居中顯示<UserControl<UserControld:DesignHeight="600"d:DesignWidth="900"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="move"VerticalAlignment="Top"Width="75"Click="move_Click"/>namespacenamespace{publicpartialclassMoveTo:{public{}privatevoidmove_Click(objectsender,RoutedEventArgs{{}}}第6如果想改變地圖容器中的地圖狀態(tài),需要設(shè)置圖層控件的disy屬性,當其值為trueButton控件,如果要想在鼠標點擊這個按鈕的時候切換瓦片圖層的顯示狀態(tài),需函數(shù)通過設(shè)置TileLayer控件的disy屬來控制瓦片圖層顯示狀態(tài);然后給Button控件的click屬性賦值為oncick()。<<UserControld:DesignHeight="600"d:DesignWidth="900"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="642">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/> y"VerticalAlignment="Top"Width="75"Click="dis y_Click"/>namespacenamespace{publicpublicpartialclassLayerState:{public{}privatevoid y_Click(objectsender,RoutedEventArgs{ y= }}}第1問怎樣在地圖上繪制點2Button控件,如果要想在鼠DrawingType.Point,在繪圖結(jié)束回調(diào)DrawinerCallback里加載一個處理繪制點結(jié)束的函數(shù)Point_Drawiner;然后,在繪圖結(jié)束回調(diào)函數(shù)Point_Drawiner中新建一個IMSCircle對象,設(shè)置繪圖用的各種屬性,再將鼠標單擊獲得的坐標信息傳給點,繪制出點個是作為DrawObj的成員函數(shù);目的是為了可以多次繪制圖形,也可以在選擇地圖上<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="drawPoint"VerticalAlignment="Top"Width="75"Click="drawPoint_Click"/>usingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassDrawPoint:{privateGraphicsLayerm_g publicDrawPoint(){}publicvoid { yer=newGraphicsLayer(); }privatevoiddrawPoint_Click(objectsender,RoutedEventArgs{if(m_g }

privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{pnt.Fill=newSolidColorBrush(Colors.Blue);pnt.Stroke=newSolidColorBrush(Colors.Brown);pnt.StrokeThickness=2;pnt.Radius=0.002; }}}第2問怎樣在地圖上繪制線2Button控件,如果要想在鼠調(diào)DrawinerCallback里加載一個處理繪制點結(jié)束的函數(shù)BeeLine_Drawiner;然個是作為DrawObj的成員函數(shù);目的是為了可以多次繪制圖形,也可以在選擇地圖上<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="drawBeeLine"VerticalAlignment="Top"Width="75"Click="drawBeeLine_Click"/>Name="drawPolyLine"VerticalAlignment="Top"Width="75"Click="drawPolyLine_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassDrawLine:{privateGraphicsLayerm_g publicDrawLine(){}publicvoid { yer=newGraphicsLayer(); }privatevoiddrawBeeLine_Click(objectsender,RoutedEventArgs{if(m_g }privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{{beeLine.Stroke=newSolidColorBrush(Colors.Cyan);beeLine.StrokeThickness=3;beeLine.Points=logPntArr;beeLine.Flicker(400,3); }privatevoiddrawPolyLine_Click(objectsender,RoutedEventArgs{if(m_g }privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{polyLine.Stroke=newSolidColorBrush(Colors.Orange);polyLine.StrokeThickness=2;polyLine.Flicker(400,3); }}}第3問怎樣在地圖上繪制圓<UserControl<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="drawCircle"VerticalAlignment="Top"Width="75"Click="drawCircle_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassDrawCircle:{privateGraphicsLayerm_g publicDrawCircle(){}publicvoid { yer=newGraphicsLayer(); }privateprivatevoiddrawCircle_Click(objectsender,RoutedEventArgs{if(m_g }privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{{circle.Fill=newSolidColorBrush(Colors.Green);circle.Stroke=newSolidColorBrush(Colors.Black);circle.StrokeThickness=2;/*法//circle.CenX=//circle.CenY=//circle.Radius=Math.Sqrt(Math.Pow(logPntArr[0].X-logPntArr[1].X,2)+Math.Pow(logPntArr[0].Y-logPntArr[1].Y,2));//doublers=logPntArr[1].X-/**/circle.Flicker(400,3); }}}}第4問<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="drawRect"VerticalAlignment="Top"Width="75"Click="drawRect_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassDrawRect:{privateGraphicsLayerm_g publicDrawRect(){}publicvoid { yer=new }{ }privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{{rect.Stroke=newSolidColorBrush(Colors.Black);rect.StrokeThickness=2;/*法//rect.EndPoint=/**/rect.Flicker(400,3); }}}}第5問怎樣在地圖上繪制區(qū)象Shape即可填充區(qū)。<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="drawPolygon"VerticalAlignment="Top"Width="75"Click="drawPolygon_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassDrawPolygon:{privateGraphicsLayerm_g publicDrawPolygon(){}publicvoid { yer=new }privatevoiddrawPolygon_Click(objectsender,RoutedEventArgs{if(m_g }privatevoid er(GraphicsLayergLayer,IGraphicsgraphics,{polygon.Stroke=newSolidColorBrush(Colors.Red);polygon.StrokeThickness=2;polygon.Flicker(400,3); }}}第6問怎樣在地圖上添加一個點<<UserControldd:DesignHeight="600"d:DesignWidth="800"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="addPoint"VerticalAlignment="Top"Width="75"Click="addPoint_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassAddPoint:{privateGraphicsLayerm_g publicAddPoint(){}publicvoid { yer=newGraphicsLayer(); }privatevoidaddPoint_Click(objectsender,RoutedEventArgs{if yer== pnt.Fill=newSolidColorBrush(Colors.Red);pnt.StrokeThickness=2;pnt.CenX=pnt.CenY= }}}第7問怎樣在地圖上添加一條線2問介紹了怎么在地圖上通過鼠標繪制一條線在地圖上疊加顯示,如果在實際應(yīng)IMSPolyline對象,然后將已知坐標的點數(shù)組List<Point>傳給繪圖坐標數(shù)組Points,再將其(14.2,30.5提示:在地圖上添加一個多邊形跟添加一條線類似,只需要將IMSPolyline<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="addLine"VerticalAlignment="Top"Width="75"Click="addLine_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;namespace{publicpartialclassAddLine:{privateGraphicsLayerm_g publicAddLine(){}publicvoid { yer=newGraphicsLayer(); }privatevoidaddLine_Click(objectsender,RoutedEventArgs{if(m_g IMSPolylinepolyLine=newpolyLine.Stroke=newpolyLine.StrokeThicknesspolyLine.StrokeThickness=List<Point>logPntArr=newList<Point>();Pointp;p=newPoint(114.18,30.58);polyLine.Flicker(400,3); }}}第8問怎樣在地圖上添加一個標注點2Button控件,如果要想在鼠后將其傳入BitmapImage中。<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="addMark"VerticalAlignment="Top"Width="75"Click="addMark_Click"/>usingusingZDIMS.Drawing;usingZDIMS.Util;usingZDIMS.Event;usingSystem.Windows.Media.Effects;usingnamespace{publicpartialclassAddMark:{publicAddMark(){}publicvoid{m_markLayer=newMarkLayer();}privatevoidaddMark_Click(objectsender,RoutedEventArgs{//IMSPolymericMarkm=new{X=Y={

Width=Height=},{X=Y=EnableDrag=true,//添加一 IMSMarkmark;m_markLayer.EnableMarkHiden=false;m_markLayer.EnablePolymericMark=true;mark=newIMSMark(newImage(){}

Width=Height=mark.X=114.2879;mark.Y= //}}第92Button控件,下面的示例代300)轉(zhuǎn)換為邏輯坐標,然后調(diào)用LogicToScreen把得到的邏輯坐標再反轉(zhuǎn)成窗口坐標。<<UserControld:DesignHeight="600"d:DesignWidth="800"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="598">Width="200"HdfName="WhMap"ServerAddress=" AutoGetMapInfo="True"/>Name="coordTransform"VerticalAlignment="Top"Width="75"Click="coordTransform_Click"/>namespacenamespace{publicpartialclassCoordTransform:{public{}{Pointpnt=new+

//"+)+PointscrPnt=newPoint();= //"邏輯轉(zhuǎn)窗口"}}}第1問怎樣獲取地圖文檔圖層列表3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)獲得地圖文檔的圖層數(shù),GetLayerInfo函數(shù)獲取地圖文檔中的各個圖層名稱,然后設(shè)置在TextBlock控件中顯示。 d:DesignHeight="600"d:DesignWidth="950"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" "/>Name="getLayers"VerticalAlignment="Top"Width="75"Click="getLayers_Click"/><TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingusingnamespacenamespace{publicpartialclassGetLayers:{publicGetLayers{}/*{stringlayers="地圖中有圖層:";for(inti=0;i<layCount;{stringlayers+=(aLayer+",");} y.Text=}}}第2參照第二章第3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)onClick函數(shù)。在onClick函數(shù)中,調(diào)用地圖文檔對象VectorMapDoc的GetMayerInfo函 <<UserControld:DesignHeight="600"d:DesignWidth="950"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" "/>Name="hideLayer0"VerticalAlignment="Top"Width="75"Click="hideLayer0_Click"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingnamespace{publicpartialclassHideLayer:{publicHideLayer{}/*privatevoidhideLayer0_Click(objectsender,RoutedEventArgs{ yerInfo(0).LayerStatus=}publicvoidue(object{{}}}第3問怎樣獲取鼠標當前位置信息3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)MouseEventHandlerIMSMapMouseMoveLogicPnt屬性獲得鼠標當前的位置信息,然后設(shè)置在TextBlock控件中顯示。<<UserControld:DesignHeight="600"d:DesignWidth="950"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" "/><TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>Name="showCoord"VerticalAlignment="Top"Width="75"Click="showCoord_Click"/>usingusingusingusingnamespace{publicpartialclassShowCoord:{public{}/*添加鼠標移動顯示位置坐標 privatevoidshowCoord_Click(objectsender,RoutedEventArgs{}{Pointpt=newpt= y.Text"X="pt.X",Y}}}第4問怎樣添加和刪除地圖鼠標器IMSMap的MouseMove觸發(fā);刪除地圖鼠標只需在添加的一個按鈕的onClick函數(shù)中移除地圖容器IMSMap的MouseMove觸發(fā)即可。<<UserControldd:DesignHeight="600"d:DesignWidth="950"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" <TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>Name="showCoord"VerticalAlignment="Top"Width="75"Click="showCoord_Click"/>Name="hideCoord"VerticalAlignment="Top"Width="75"Click="hideCoord_Click"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingnamespace{publicpartialclassMouseEvent:{public{}/*添加鼠標移動顯示位置坐標 privatevoidshowCoord_Click(objectsender,RoutedEventArgs{}{{Pointpt=newpt= y.Text"X="pt.X",Y}/*privatevoidhideCoord_Click(objectsender,RoutedEventArgs{}}}第5問參照第二章第3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)MouseButtonEventHandlerGraphicsLayerDrawingTypePointDrawingEventHandlerGetPntGetPnt中獲得鼠標點擊的坐標信息,然后設(shè)置在TextBlock控件中顯示。TextBlock控件中顯示(見被注釋的部分;但是<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" "/><TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>Name="getPoint"VerticalAlignment="Top"Width="75"Click="getPoint_Click"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingnamespace{publicpartialclassGetPoint:{privateGraphicsLayerm_g publicGetPoint(){ yer=newGraphicsLayer(){EnableGPUMode=true}; }/*privatevoidgetPoint_Click(objectsender,RoutedEventArgs{ =}{//Pointpt=new//pt= y.Text="鼠標點擊選中的位置X="+pt.X+",Y="+pt.Y; yer.DrawingType=DrawingType.Point; }publicvoidGetPnt(GraphicsLayergLayer,IGraphicsgraphics,List<Point>{{Dot_2Ddot=newDot_2D();dotx=logPntArr[0].X;dot.y=logPntArr[0].Y; y.Text"X="dot.x"Y="}}}}第6問參照第二章第3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)MouseButtonEventHandlerGraphicsLayerDrawingType獲得繪制這條線的一系列點的坐標信息,然后設(shè)置在TextBlock控件中顯示。<<UserControld:DesignHeight="600"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" ame="wh"AutoGetMapInfo="True" <TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>Name="getLine"VerticalAlignment="Top"Width="75"Click="getLine_Click"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingnamespace{publicpartialclassGetLine:{privateGraphicsLayerm_g publicGetLine(){ yer=newGraphicsLayer(){EnableGPUMode=true}; }/*privatevoidgetLine_Click(objectsender,RoutedEventArgs{ =}{yer.DrawingType=}publicvoidGetPLine(GraphicsLayergLayer,IGraphicsgraphics,List<Point>{{{ =TextWrap y.Text="線上的點序列:";for(inti=0;i<logPntArr.Count;{ logPntArr[i].Y.ToString("0.00")+")";}}}}}第7問怎樣用鼠標獲取一個矩形參照第二章第3問實現(xiàn)地圖文檔顯示,然后添加一個按鈕,在點擊該按鈕的時候觸發(fā)MouseButtonEventHandlerGraphicsLayerDrawingTypeRectangleDrawingEventHandlerGetRectGetRect中獲得矩形左下角和右上角的坐標信息,然后設(shè)置在TextBlock控件中顯示。<<UserControld:DesignHeight="600"d:DesignWidth="950"<Gridx:Name="LayoutRoot"Name="iMSMap1"VerticalAlignment="Top"Width="720">Name="vectorMapDoc1"Width="200" <TextBlockHeight="46"HorizontalAlignment="Left"Margin="202,64,0,0"Name="textDis Text="TextBlock"VerticalAlignment="Top"Width="710"Foreground="#FFF2092D"/>Name="getRect"VerticalAlignment="Top"Width="75"Click="getRect_Click"/>usingusingZDIMS.BaseLib;usingZDIMS.Map;usingnamespace{publicpartialclassGetRectangle:{privateGraphicsLayerm_g publicGetRectangle(){ yer=newGraphicsLayer(){EnableGPUMode=true}; }/*privatevoidgetRect_Click(objectsender,RoutedEventArgs{ =}{yer.DrawingType=}publicvoidGetRect(GraphicsLayergLayer,IGraphicsgraphics,List<Point>{{{ZDIMS.BaseLib.RectrectnewZDIMS.BaseLib.Rect();rectxmin=Math.Min(logPntArr[0].X,logPntArr[1].X);rectxmaxMath.Max(logPntArr[0].X,logPntArr[1].X);rect.ymin=Math.Min(logPntArr[0].Y,logPntArr[1].Y);rect.ymaxMath.Max(logPntArr[0].Y,logPntArr[1].Y); y.Text="矩形范圍:"; y.Text+="("+rect.xmin.ToString("0.000")+","++ y.Text+="("+rectxmax.ToString("0.000")+","+rect.ymax.ToString("0.000")+")"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論