亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#調用arcgis地圖rest服務示例詳解(arcgis地圖輸出)

2020-01-24 02:59:08
字體:
來源:轉載
供稿:網友

1、使用步驟

1)構建請求網址

A、確定端點:每個GIS服務都有一個端點。例如,ArcGIS Server上Demographics文件夾下名為ESRI_Census_USA的一個地圖服務sampleserver1.arcgisonline.com的端點為:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer.

B、確定操作:不同地理信息系統服務支持不同的操作。不同的操作會返回不同的結果。地圖服務可以地圖輸出,點擊查看,查找和生成KML。輸出地圖可以生成地圖,同時可以點擊產看是否給出地圖服務圖層的屬性表。

C、確定參數:不同的操作需要不同的參數。例如,如果請求地圖圖片,需要提供地圖范圍的四周角點坐標參數,也就是地圖覆蓋范圍。

D、確定輸出格式:REST API支持很多輸出格式,例如JSON,KMZ,圖片和HTML。確定輸出格式的重要參數是f。在URL請求的查詢字符串后面加上”f=<你的格式>”來確定輸出格式。例如:f=html返回的數據格式為html;f=json返回的數據格式為json;f=image返回的格式為image等等。

我們就以上面的4個步驟來構建自己需要的URL。一般來說,格式如下:

http://{ArcGIS Server name}/ArcGIS/rest/services/{foldername}/{service name}/{service type}/{operation}?{{parameter1}={somevalues}&{parameter2}={some values}&…&{parameter}={some values}}

可以看到,整個URL請求分為兩個部分,第一部分是服務的端點和操作類型,也就是“?”前面的部分;第二部分是查詢字符串,即請求參數,“?”后面的部分。

2)發送請求到ArcGIS Server

提交URL請求到ArcGIS Server Sending,可以不通過編程發送URL請求。例如,只需在網頁瀏覽器的地址欄輸入網址,如IE或Firefox。每種編程語言都用不同的提出請求方式。

3)接受服務器的響應

接受ArcGISServer的響應,ArcGIS Server處理請求并返回響應到客戶端。對于一個同步的工作,客戶端一直等待收到服務器的響應。對于一部工作,服務器發送一份工作編號來定期跟蹤客戶端的工作狀態。

4)解析服務器響應

ArcGIS Server REST Web服務的響應可以是多種格式,例如JSON,KML,圖片和HTML。客戶端可判斷響應時成功還是失敗。如果失敗了,客戶端可以判斷錯誤信息。如果響應是成功的,客戶端可以解析響應所需的信息,并恰當地利用這些信息。


2、編程使用

代碼以ArcGIS API for WPF為例,操作為addFeatures,這里只是add一個要素點,參考ArcGIS官方文檔說明:http://sampleserver3.arcgisonline.com/ArcGIS/SDK/REST/index.html?fsadd.html

參考代碼:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ESRI.ArcGIS.Client;
using ESRI.ArcGIS.Client.Geometry;
using ESRI.ArcGIS.Client.Tasks;
using System.Net;
using System.IO;

namespace ArcGISDemo
{
//自定義的Feature
class FeatureItem
{
public Geometry Geometry { set; get; }
public IDictionary<string, object> Attributes { set; get; }
};

class Program
{
static bool AddFeature(string layerUrl, FeatureItem featureItem)
{
string url = layerUrl+"/addFeatures";
string data = "f=json"; //以json格式返回結果

ESRI.ArcGIS.Client.Graphic g = new ESRI.ArcGIS.Client.Graphic()
{
//Graphic的Attributes在ArcGIS API for WPF 中是只讀的
//如果是可寫的,就可以直接使用Graphic的Attributes,而不需要拼接json
//Attributes = featureItem.Attributes,
Geometry = featureItem.Geometry
};
FeatureSet fs = new FeatureSet();
fs.Features.Add(g);
//使用FeatureSet自帶的ToJson函數轉換,可以幫助轉換Feature的Geometry對象
//ArcGIS的Geometry對象序列化為json字符串時和標準的json不太一樣
string json = fs.ToJson();
int begin = json.IndexOf("[");
int end = json.IndexOf("]", begin);
string featuresJson = json.Substring(begin, end - begin + 1);
string features = string.Format("&features={0}", featuresJson);
data += features;

//使用fastJson轉換Attributes
//fastJSON.JSON.Instance.Parameters.UseEscapedUnicode = false;
//string attr = fastJSON.JSON.Instance.ToJSON(featureItem.Attributes);
string attr = Newtonsoft.Json.JsonConvert.SerializeObject(featureItem.Attributes);
//int attrPos = data.IndexOf("attributes");
//將原來空的Attributes替換掉,以自己轉換的json字符串實際情況為準
string para = data.Replace("/"attributes/":{}","/"attributes/":"+attr);

string res = PostData(url, para);

//處理返回的結果
if (res.Contains("error"))
return false;
Dictionary<string, List<Dictionary<string, object>>> resDic
= Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, object>>>>(res);
if (resDic.ContainsKey("addResults"))
{
List<Dictionary<string, object>> addRes = resDic["addResults"];
foreach (Dictionary<string, object> dic in addRes)
{
if (dic.ContainsKey("success"))
{
if (dic["success"].ToString().ToLower() == "true")
return true;
else return false;
}
}
}
return false;
}

static string PostData(string url, string data)
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] bs = Encoding.UTF8.GetBytes(data);
Stream reqStream = request.GetRequestStream();
reqStream.Write(bs, 0, bs.Length);
reqStream.Close();

string responseString = null;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
responseString = reader.ReadToEnd();
reader.Close();
}
return responseString;
}

static void Main(string[] args)
{
string url = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Fire/Sheep/FeatureServer/0";
MapPoint point = new MapPoint(105, 30);

FeatureItem fi = new FeatureItem();
fi.Geometry = point;
fi.Attributes = new Dictionary<string, object>();
fi.Attributes.Add("description", "測試點");
bool res = AddFeature(url, fi);
if (res)
{
Console.WriteLine("添加要素成功!");
}
else
{
Console.WriteLine("添加要素失敗!");
}
Console.ReadKey();
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
自拍偷拍亚洲区| 日韩在线视频网站| 亚洲激情中文字幕| 日本国产一区二区三区| 国产精品久久久久久影视| 69视频在线播放| 国产精品老牛影院在线观看| 国产精品极品美女粉嫩高清在线| 亚洲欧美激情在线视频| 日韩欧美成人区| 中文欧美日本在线资源| 日本一欧美一欧美一亚洲视频| 最新日韩中文字幕| 久久久国产一区二区| 一区二区欧美亚洲| 狠狠色狠狠色综合日日五| 亚洲精品91美女久久久久久久| 亚洲欧洲一区二区三区久久| 日韩在线观看你懂的| 久久99国产综合精品女同| 久久久久久久香蕉网| 久久这里有精品| 欧美尺度大的性做爰视频| 久久激情视频免费观看| 国产欧美日韩中文字幕| 国产经典一区二区| 韩国福利视频一区| 欧美午夜性色大片在线观看| 狠狠综合久久av一区二区小说| 26uuu日韩精品一区二区| 成人女保姆的销魂服务| 色偷偷亚洲男人天堂| 亚洲影院色无极综合| 欧美区在线播放| 欧美xxxx做受欧美| 亚洲激情视频网| 国产精品中文久久久久久久| 欧美激情喷水视频| 亚洲国产高潮在线观看| 久久乐国产精品| 日韩成人av网址| 国产欧美日韩最新| 国产亚洲精品久久| 欧美日韩综合视频网址| 国产精品欧美一区二区| 日韩免费在线播放| 成人在线小视频| 国产精品欧美亚洲777777| 亚洲精品电影网站| 成人在线国产精品| 日韩免费不卡av| 成人激情av在线| 福利一区视频在线观看| 亚洲精品成人久久久| 欧美xxxx做受欧美.88| 亚洲夜晚福利在线观看| 精品国产31久久久久久| 一本色道久久88亚洲综合88| 国产精品欧美风情| 91色精品视频在线| 久久久av电影| 亚洲色图第三页| 欧美大片在线免费观看| 色偷偷av亚洲男人的天堂| 久久久999国产精品| 国产精品99一区| 亚洲电影免费观看高清完整版在线观看| 91国产精品视频在线| 国产精品美女无圣光视频| 成人黄色午夜影院| 91精品国产高清久久久久久久久| 深夜福利一区二区| 欧美激情精品久久久久久黑人| 91午夜理伦私人影院| 久久久在线免费观看| 欧美成人亚洲成人日韩成人| 色狠狠av一区二区三区香蕉蜜桃| 久久精品视频在线播放| 亚洲精品456在线播放狼人| 亚洲人成在线播放| 国产精欧美一区二区三区| 日韩男女性生活视频| 欧美日韩性视频| 一区二区福利视频| 精品伊人久久97| 久久国产精品久久精品| 国产成人亚洲综合| 日韩精品在线观看一区二区| 不卡av电影在线观看| 亚洲视频在线观看网站| 欧美精品中文字幕一区| 7777精品视频| 亚洲国产97在线精品一区| 国产成人在线播放| 都市激情亚洲色图| 亚洲电影免费观看高清完整版在线观看| 成人性生交大片免费观看嘿嘿视频| 91国偷自产一区二区三区的观看方式| 日韩美女在线观看一区| 亚洲人成电影网站色| 中文字幕精品www乱入免费视频| 成人欧美在线观看| 亚洲国产精彩中文乱码av在线播放| 国产精品偷伦一区二区| 中文字幕最新精品| 亚洲男人天堂手机在线| 国产精品99久久久久久久久久久久| 亚洲老头同性xxxxx| 精品亚洲一区二区三区在线观看| 亚洲精品免费网站| 国产欧美精品久久久| 国产精品久久久久福利| 91色精品视频在线| 亚洲伦理中文字幕| 精品国产视频在线| 日韩av网站导航| 国产精品久久久久久久久久三级| 欧美日韩午夜剧场| 久久精品在线视频| 亚洲国产精品yw在线观看| 26uuu久久噜噜噜噜| 日韩av在线高清| 国产在线精品成人一区二区三区| 国产精品尤物福利片在线观看| 亚洲精美色品网站| 中文字幕在线看视频国产欧美在线看完整| 亚洲综合最新在线| 欧美高清第一页| 久久在线观看视频| 黑丝美女久久久| 久久精品国产视频| 国语自产精品视频在线看| 欧美国产日韩视频| 在线精品高清中文字幕| 国产日本欧美在线观看| 亚洲国产精品成人av| 成人免费网站在线观看| 日韩av电影手机在线| 欧美一区二区影院| 日韩中文理论片| 狠狠综合久久av一区二区小说| 97国产在线观看| 奇米一区二区三区四区久久| 亚洲激情成人网| 欧美成人一区二区三区电影| 国自在线精品视频| 在线观看精品自拍私拍| 亚洲国产成人精品一区二区| 91精品在线一区| 久久久黄色av| 97av视频在线| 国产成人福利视频| 国产精品va在线播放| 久久久成人精品| 国产精品最新在线观看| 日韩精品一二三四区| 欧美一级免费视频| 久久久久久com| 欲色天天网综合久久| 国产成人jvid在线播放| 国产精品视频导航| 久久精品91久久久久久再现| 久热爱精品视频线路一| 欧美日韩午夜激情|