Example #1
0
        public void GetLocationCollectionTest()
        {
            // act
            var response  = client.GetLocationCollection().Result;
            var locations = response.Result;

            // assert
            Assert.IsTrue(locations.Count > 0);
            Assert.IsTrue(locations.NextLink == "http://scratchpad.sensorup.com/OGCSensorThings/v1.0/Locations?$top=100&$skip=100");
            Assert.IsTrue(locations.Items.Count == 100);
        }
Example #2
0
        protected async override void OnClick()
        {
            var map = MapView.Active.Map;


            var fl = FeatureClassCreator.GetFeatureLayer(map, Settings.StLocationsTablename);

            if (fl == null)
            {
                fl = await QueuedTask.Run(() => AddLocationsLayer());
            }

            SetRenderer(fl);
            var count = await FeatureClassCreator.GetCount(fl);

            if (count == 0)
            {
                var server    = Settings.STServer;;
                var client    = new SensorThingsClient(server);
                var locations = client.GetLocationCollection().Items;

                await CreateLocations(fl, locations);
            }
        }
Example #3
0
        static void Main()
        {
            Console.WriteLine("Sample console app for SensorThings API client");
            var server = "http://scratchpad.sensorup.com/OGCSensorThings/v1.0/";

            var client = new SensorThingsClient(server);

            Console.WriteLine("Create observation for datastream 18");
            var datastream = new Datastream {
                Id = "263"
            };
            var observation = new Observation
            {
                Datastream     = datastream,
                PhenomenonTime = new DateTimeRange(DateTime.UtcNow),
                Result         = 100
            };

            // do not create observations for now
            _ = client.CreateObservation(observation).Result;

            Console.WriteLine("Retrieve all paged datastreams...");
            var response = client.GetDatastreamCollection().Result;
            var page     = response.Result;

            var pagenumber = 1;

            while (page != null)
            {
                Console.WriteLine("---------------------------------------");
                WritePage(response.Result);
                var pageResponse = page.GetNextPage().Result;
                page = pageResponse?.Result;

                pagenumber++;
            }
            Console.WriteLine("End retrieving datastreams...");
            Console.WriteLine("Number of pages: " + pagenumber);

            var datastreamResponse = client.GetDatastream("263").Result;

            datastream = datastreamResponse.Result;
            var observationsResponse = datastream.GetObservations(client).Result;
            var observations         = observationsResponse.Result;

            Console.WriteLine("Number if observations: " + observations.Count);

            Console.WriteLine("Sample with locations");
            var locationsResponse = client.GetLocationCollection().Result;
            var locations         = locationsResponse.Result;

            // Get location without using GeoJSON.NET (works only for points)
            var firstlocation = locations.Items[0];
            var feature       = (JObject)firstlocation.Feature;
            var lon           = feature.First.First.First.Value <double>();
            var lat           = feature.First.First.Last.Value <double>();

            Console.WriteLine($"Location: {lon},{lat}");

            // if using GeoJSON.NET use something like:
            // var p = JsonConvert.DeserializeObject<Point>(feature.ToString());
            //  var ipoint = (GeographicPosition)p.Coordinates;
            // Console.WriteLine("Location: " + ipoint.Longitude + ", " + ipoint.Latitude);

            Console.WriteLine("Program ends... Press a key to continue.");
            Console.ReadKey();
        }