本篇文章給大家談?wù)刬gis導(dǎo)出地圖步驟,以及對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
目錄一覽:
- 1、如何利用ArcServer實現(xiàn)地圖查詢
- 2、sql腳本導(dǎo)入數(shù)據(jù)庫,數(shù)據(jù)庫sql腳本如何導(dǎo)入
- 3、您好,請問百度地圖要多少金幣才能一個月得15元呢?
如何利用ArcServer實現(xiàn)地圖查詢
首先引入相應(yīng)的命名空間:
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.ADF.Connection;
using ESRI.ArcGIS.ADF.Connection.AGS;
添加微信好友, 獲取更多信息
復(fù)制微信號
using ESRI.ArcGIS.Server;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Geodatabase;
1.指定連接用的用戶。
ESRI.ArcGIS.ADF.Identity id = new ESRI.ArcGIS.ADF.Identity();
id.UserName = "Administrator";
id.Password = "password";
id.Domain = "服務(wù)器的計算機(jī)名字";
string agsServerName = "服務(wù)器的IP地址";
2.連接到服務(wù)器。
要通過程序來連接到GISServer,主要有兩個對象可以使用:ESRI.ArcGIS.Server.GISServerConnection(實現(xiàn)了IGISServerConnection2接口)和ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection。前者是com對象,后者是原生的.net對象。
先來看ESRI.ArcGIS.Server.GISServerConnection。使用 *** 如下:
ESRI.ArcGIS.Server.IGISServerConnection2 pGISSC = new ESRI.ArcGIS.Server.GISServerConnectionClass();
pGISSC.Connect("yourservername");
ESRI.ArcGIS.Server.IServerObjectAdmin pAdm = pGISSC.ServerObjectAdmin;
注意,要成功獲得pGISSC.ServerObjectAdmin屬性得有一個前提條件,就是運(yùn)行當(dāng)前AGS程序的用戶必須是agsadmin組里的成員。那么接下來就可以通過IServerObjectAdmin來對GISServer進(jìn)行管理了;如果運(yùn)行當(dāng)前AGS程序的用戶只是agsuser組里的成員,那么你只能獲得ServerObjectManager,從而通過IServerObjectManager來創(chuàng)建AO對象,但是不能對GISServer進(jìn)行管理;如果運(yùn)行當(dāng)前AGS程序的用戶既不是agsuser成員也不是agsadmin成員,那么在connect的時候就會報錯了。可以看出ESRI.ArcGIS.Server.GISServerConnection對象不能顯式指定連接GIS Server的用戶。
下面再來看ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection。這是ADF中的.net對象,通常推薦使用這個對象來進(jìn)行連接工作,因為它可以指定使用特定的賬戶身份來連接GIS Server,就是下面的Identity:
ESRI.ArcGIS.ADF.Identity identity = new ESRI.ArcGIS.ADF.Identity("username", "password", "domain");
ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsconnection = newESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection("yourgisservername",identity);
agsconnection.Connect();
ESRI.ArcGIS.Server.IServerObjectAdmin pAdm = agsconnection.ServerObjectAdmin;
同樣的,要成功獲得pAdm,Identity中指定的用戶必須是agsadmin成員。如果你的網(wǎng)站,在調(diào)試時可以運(yùn)行,而發(fā)布后“拒絕訪問”,那么首先檢查web.config的identity,如果使用了以上代碼,請確保使用的user在正確的用戶組中。
這里我就采用之一種 *** ,如下:
AGSServerConnection agsConn = new AGSServerConnection(agsServerName, id);
try
{
agsConn.Connect();
if (!agsConn.IsConnected)
{
agsConn.Dispose();
return "";
}
}
catch (Exception ex)
{
return "";
}
3.獲取SOM對象。
IServerObjectManager som = agsConn.ServerObjectManager;
4.設(shè)置對應(yīng)的地圖名字和服務(wù)類型,獲取上下文(IServerContext)
要獲取當(dāng)前的severContext。而獲取IServerContext有兩種 *** :
1)、通過當(dāng)前Resorces得到
UIComponent form = facesContext.getViewRoot().findComponent((String)paramMap.get("formId"));
if (form == null)
{
return;
}
MapControl mapControl = (MapControl)form.findComponent((String)paramMap.get("mapId"));
if (mapControl == null)
{
return;
}
WebMap webMap = mapControl.getWebMap();
WebContext webContext = webMap.getWebContext();
// 得到當(dāng)前服務(wù)的IServerContext
AGSLocalMapResource mapResource = (AGSLocalMapResource)webContext.getResources().get("ags1");
MapServer mapServer = mapResource.getLocalMapServer();
IServerContext serverContext =mapResource.getServerContext();
2)、通過IP鏈接得到(也就是我要用的 *** )
IServerObjectManager som = agsConn.ServerObjectManager;
string servertype = "MapServer";
string serverobjectname = "GZ"; //對應(yīng)的地圖名
IServerContext severContext = som.CreateServerContext(serverobjectname, servertype);
IMapServer pMapServer = severContext.ServerObject as IMapServer;
IMapServerObjects pMapServerObjs = pMapServer as IMapServerObjects;
IMap pMap =pMapServerObjs.get_Map(pMapServer.DefaultMapName);
5.獲取IMapServerObjects
IMapServer pMapServer = severContext.ServerObject as IMapServer;
IMapServerObjects pMapServerObjs = pMapServer as IMapServerObjects;
6.通過IMapServerObjects獲取IMap對象
IMap pMap = pMapServerObjs.get_Map(pMapServer.DefaultMapName);
7.獲取要查詢的圖層和屬性
//得到查詢的圖層
ILayer workAreaLayer = pMap.get_Layer(7);
IFeatureLayer loopFeatureLayer = (FeatureLayer)(workAreaLayer);
IFeatureClass loopFeatureClass =loopFeatureLayer.FeatureClass;
8.設(shè)置查詢用的Filter
ISpatialFilter spatialFilter = (ISpatialFilter)severContext.CreateObject("esriGeoDatabase.SpatialFilter");
string shpFld = loopFeatureClass.ShapeFieldName;
spatialFilter.GeometryField = shpFld;
//指定要使用的空間操作
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
//創(chuàng)建where表達(dá)式,這里只要要素
spatialFilter.WhereClause = "圖號='" + no + "'";
IQueryFilter queryFilter=new QueryFilterClass();
queryFilter = (IQueryFilter)spatialFilter;
9.調(diào)用Search查詢
IFeatureCursor featureCursor = loopFeatureClass.Search(queryFilter, false);
//之一個返回的要素
IFeature feature = featureCursor.NextFeature();
10.處理結(jié)果
IGeometry geo = feature.Shape;
string box = geo.Envelope.XMin.ToString() + "," + geo.Envelope.YMin.ToString();
box += "," + geo.Envelope.XMax.ToString() + "," + geo.Envelope.YMax.ToString();
這個Shape是查詢結(jié)果中之一個地物的外接矩形,大家可以根據(jù)自己的業(yè)務(wù)使用。這里我是要使用Shape的左下和右上兩個坐標(biāo)點(diǎn),拼接到WMS中去。
sql腳本導(dǎo)入數(shù)據(jù)庫,數(shù)據(jù)庫sql腳本如何導(dǎo)入
*** /步驟
1
【之一導(dǎo)入數(shù)據(jù)結(jié)構(gòu)】
打開本地計算機(jī)上的
sql
server
management
studio
客戶端軟件:
2
本地電腦:登陸本機(jī)數(shù)據(jù)庫連接控制端:
3
選擇您要導(dǎo)出到服務(wù)器的數(shù)據(jù)庫然后鼠標(biāo)右鍵:選擇生成sql腳本:
4
選中本地電腦需要導(dǎo)出腳本的庫名字
5
需要選擇選擇兼容sql2005的版本的腳本:
修改sql腳本的保存路徑:記錄下這個路徑
查看生產(chǎn)腳本生成的選項:
成功生成sql腳本:并記錄下腳本導(dǎo)出的路徑
連接到虛擬主機(jī)提供的目標(biāo)數(shù)據(jù)庫服務(wù)器:
并點(diǎn)擊新建查詢,拷貝您導(dǎo)出的
sql
腳本代碼(此代碼為之一步導(dǎo)出的sql腳本代碼)到上圖顯示的查詢分析器中,點(diǎn)擊分析腳本,如果沒有語法錯誤,就點(diǎn)擊執(zhí)行腳本,直到執(zhí)行完畢。
【導(dǎo)入數(shù)據(jù)結(jié)構(gòu)完畢】
【第二:導(dǎo)入數(shù)據(jù)庫數(shù)據(jù)】
下面咱們開始導(dǎo)入數(shù)據(jù)庫表中的數(shù)據(jù):登陸您本地的數(shù)據(jù)庫:
點(diǎn)擊您本地計算機(jī)上的數(shù)據(jù)庫右鍵-任務(wù)-導(dǎo)出數(shù)據(jù):
選擇目標(biāo)數(shù)據(jù)庫,如下添加虛擬主機(jī)提供給您的數(shù)據(jù)庫信息(服務(wù)器地址,用戶名,密碼,數(shù)據(jù)庫):
點(diǎn)擊下一步,點(diǎn)擊下一步,選中所有表,并確?!澳繕?biāo)”
點(diǎn)擊下一步,直到執(zhí)行完畢:這樣你的本地數(shù)據(jù)庫就導(dǎo)入到虛擬主機(jī)上了
【導(dǎo)入數(shù)據(jù)庫數(shù)據(jù)完畢】
您好,請問百度地圖要多少金幣才能一個月得15元呢?
別想了,想其他 *** 賺這15吧,百度地圖還是好點(diǎn),搜狗地圖的分,就是坑,用不用都一樣,就跟推銷是的
關(guān)于igis導(dǎo)出地圖步驟和的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。