阿里雲物聯網的位置服務,並非徹底獨立的功能。位置信息包含 二維、三維,位置數據來源於屬性的上傳。html
打開 數據分析 -> 空間數據可視化 -> 二維數據 -> 添加,爲上面演示的設備添加位置,刷新時間爲1秒。 在產品功能中,打開功能定義 ,在 標準功能 裏,添加功能。
選擇 其它類型 ,裏面搜索 位置
,在出現的列表中選一個(前面那幾個均可以)。
筆者選擇的是:node
標識符:GeoLocation 適用類別:CuttingMachine
位置上傳要設置的信息:git
注意注意,若是選擇的標準屬性跟上圖的類型定義不同,須要手動修改。要把上面的位置屬性按上圖來改,有一個地方不一樣,都會失敗。 固然,也能夠一開始就按圖手動建立。json
上傳位置數據,不須要作什麼大操做,按照屬性的上傳方法上傳便可。模型代碼參考:服務器
public class TestModel { public string id { get { return DateTime.Now.Ticks.ToString(); } set { } } public string version { get { return "1.0"; } set { } } public Params @params { get; set; } public TestModel() { @params = new Params(); } public class Params { public geoLocation GeoLocation { get; set; } public class geoLocation { public Value value { get; set; } public long time { get { return AliIoTClientJson.GetUnixTime(); } set { } } public geoLocation() { value = new Value(); } public class Value { public double Longitude { get; set; } public double Latitude { get; set; } public double Altitude { get; set; } public int CoordinateSystem { get; set; } } } public Params() { GeoLocation = new geoLocation(); } } public string method { get { return "thing.event.property.post"; } set { } } }
總體代碼參考: 定義位置模型 -> 設置位置數據 -> 上傳位置數據post
class Program { static AliIoTClientJson client; static void Main(string[] args) { // 建立客戶端 client = new AliIoTClientJson(new DeviceOptions { ProductKey = "a1A6VVt72pD", DeviceName = "json", DeviceSecret = "7QrjTptQYCdepjbQvSoqkuygic2051zM", RegionId = "cn-shanghai" }); client.OpenPropertyDownPost(); // 設置要訂閱的Topic、運行接收內容的Topic string[] topics = new string[] { client.CombineHeadTopic("get") }; // 使用默認事件 client.UseDefaultEventHandler(); // 鏈接服務器 client.ConnectIoT(topics, null, 60); while (true) { ToServer(); Thread.Sleep(1000); } Console.ReadKey(); } public static void ToServer() { // 實例化模型 TestModel model = new TestModel(); // 設置屬性值 // 經度 model.@params.GeoLocation.value.Longitude = 113.952981; // 緯度 model.@params.GeoLocation.value.Latitude = 22.539843; // 海拔 model.@params.GeoLocation.value.Altitude = 56; // 座標系類型 model.@params.GeoLocation.value.CoordinateSystem = 2; // 上傳屬性數據 client.Thing_Property_Post<TestModel>(model, false); } public class TestModel { public string id { get { return DateTime.Now.Ticks.ToString(); } set { } } public string version { get { return "1.0"; } set { } } public Params @params { get; set; } public TestModel() { @params = new Params(); } public class Params { public geoLocation GeoLocation { get; set; } public class geoLocation { public Value value { get; set; } public long time { get { return AliIoTClientJson.GetUnixTime(); } set { } } public geoLocation() { value = new Value(); } public class Value { public double Longitude { get; set; } public double Latitude { get; set; } public double Altitude { get; set; } public int CoordinateSystem { get; set; } } } public Params() { GeoLocation = new geoLocation(); } } public string method { get { return "thing.event.property.post"; } set { } } }
上面使用的是模擬位置數據,請實際狀況設置位置數據。阿里雲
打開阿里雲物聯網控制檯 -> 數據分析 -> 空間數據可視化 -> 二維數據 -> 演示產品spa
會看到定位到了深圳阿里雲大廈(高新園地鐵站附近)~~~code