日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出)

發(fā)布時間:2023/12/9 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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 Attributes { set; get; }

};

class Program

{

static bool AddFeature(string layerUrl, FeatureItem featureItem)

{

string url = layerUrl+"/addFeatures";

string data = "f=json"; //以json格式返回結(jié)果

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函數(shù)轉(zhuǎn)換,可以幫助轉(zhuǎn)換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轉(zhuǎn)換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替換掉,以自己轉(zhuǎn)換的json字符串實際情況為準

string para = data.Replace("\"attributes\":{}","\"attributes\":"+attr);

string res = PostData(url, para);

//處理返回的結(jié)果

if (res.Contains("error"))

return false;

Dictionary>> resDic

= Newtonsoft.Json.JsonConvert.DeserializeObject>>>(res);

if (resDic.ContainsKey("addResults"))

{

List> addRes = resDic["addResults"];

foreach (Dictionary 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();

fi.Attributes.Add("description", "測試點");

bool res = AddFeature(url, fi);

if (res)

{

Console.WriteLine("添加要素成功!");

}

else

{

Console.WriteLine("添加要素失敗!");

}

Console.ReadKey();

}

}

}

總結(jié)

以上是生活随笔為你收集整理的java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。