public override void ViewDidLoad () { base.ViewDidLoad (); // Perform any additional setup after loading the view, typically from a nib. View.Frame = UIScreen.MainScreen.Bounds; View.BackgroundColor = UIColor.White; View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; button = UIButton.FromType(UIButtonType.RoundedRect); button.Frame = new RectangleF( (float)(View.Frame.Width / 2 - buttonWidth / 2), buttonHeight, buttonWidth, buttonHeight); button.SetTitle("GO", UIControlState.Normal); textView = new UITextView(new RectangleF( (float)(View.Frame.Width / 2 - buttonWidth / 2), (float)((View.Frame.Height / 2 - buttonHeight / 2) - buttonHeight), buttonWidth, (float)((View.Frame.Height / 2 - buttonHeight / 2) - buttonHeight))); ArcGIS.ServiceModel.Serializers.JsonDotNetSerializer.Init(); var locator = new PortalGateway("http://geocode.arcgis.com/arcgis"); var geocode = new SingleInputGeocode("/World/GeocodeServer/".AsEndpoint()) { Text = "Wellington", SourceCountry = "NZL" }; var gateway = new PortalGateway("http://sampleserver3.arcgisonline.com/ArcGIS/"); var queryPoint = new Query(@"Earthquakes/EarthquakesFromLastSevenDays/MapServer/0".AsEndpoint()) { ReturnGeometry = false, Where = "MAGNITUDE > 4.5" }; button.TouchUpInside += async (object sender, EventArgs e) => { var geocodeResult = await locator.Geocode(geocode); var resultPoint = await gateway.Query<ArcGIS.ServiceModel.Common.Point>(queryPoint); textView.Text = string.Format("Query for earthquakes in last 7 days where magnitidue is more than 4.5, {0} features found. Geocode result for Wellington, NZ x:{1}, y:{2}", resultPoint.Features.Count(), geocodeResult.Results.First().Feature.Geometry.X, geocodeResult.Results.First().Feature.Geometry.Y); }; button.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleBottomMargin; View.AddSubview(button); View.Add(textView); }
public async Task CanGetHealthCheck(string rootUrl) { var gateway = new PortalGateway(rootUrl); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.HealthCheck()); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.True(result.IsHealthy); }
public async Task CanDescribeLegend(string rootUrl, string mapUrl) { var gateway = new PortalGateway(rootUrl); var layerResponse = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.DescribeLegends(mapUrl.AsEndpoint())); }); Assert.NotNull(layerResponse); Assert.Null(layerResponse.Error); Assert.NotNull(layerResponse.Layers); Assert.True(layerResponse.Layers.Any()); }
public async Task CanGetServerInfo(string rootUrl) { var gateway = new PortalGateway(rootUrl); var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Info()); }); Assert.Null(response.Error); Assert.True(response.CurrentVersion > 9.0); Assert.NotNull(response.AuthenticationInfo); }
public async Task CanQueryForCount() { var gateway = new PortalGateway("http://services.arcgisonline.com/arcgis/"); var query = new QueryForCount(@"/Specialty/Soil_Survey_Map/MapServer/2".AsEndpoint()); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.QueryForCount(query)); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.True(result.NumberOfResults > 0); }
//2,每个传送门的代码的Start部分调用,将自身注册(也就是加入进List)。 public PortalGateway FindSameGate(PortalGateway portalGateway) { foreach (PortalGateway portalGateway1 in instance.portalGateways) { if (portalGateway1 != portalGateway) { if (portalGateway1.kindofGate == portalGateway.kindofGate) { return(portalGateway1); } } } return(null); }
public async Task CanQueryWithNoGeometryResponse() { var gateway = new PortalGateway("http://services.arcgisonline.com/arcgis/"); var query = new Query(@"/Specialty/Soil_Survey_Map/MapServer/2"); var result = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.Query(query)); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.NotNull(result.Features); Assert.True(result.Features.All(x => x.Geometry == null)); }
public async Task CanSuggest(string rootUrl, string relativeUrl, string text) { var gateway = new PortalGateway(rootUrl); var suggest = new SuggestGeocode(relativeUrl.AsEndpoint()) { Text = text }; var response = await gateway.Suggest(suggest); Assert.Null(response.Error); Assert.NotNull(response.Suggestions); Assert.True(response.Suggestions.Any()); var result = response.Suggestions.First(); Assert.True(!string.IsNullOrWhiteSpace(result.Text)); }
public async Task CanGetFeature(string rootUrl, string relativeUrl, long objectId) { var gateway = new PortalGateway(rootUrl); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.GetFeature <Polygon>(new LayerFeature(relativeUrl, objectId))); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.NotNull(result.Feature); Assert.NotNull(result.Feature.Attributes); Assert.NotNull(result.Feature.Geometry); Assert.Equal(result.Feature.ObjectID, objectId); }
public async Task CanQueryExtent(string rootUrl, string relativeUrl) { var gateway = new PortalGateway(rootUrl); var query = new QueryForExtent(relativeUrl.AsEndpoint()); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.QueryForExtent(query)); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.True(result.NumberOfResults > 0); Assert.NotNull(result.Extent); Assert.NotNull(result.Extent.SpatialReference); Assert.NotNull(result.Extent.GetCenter()); }
public async Task CanCustomGeocodePolygon(string rootUrl, string relativeUrl, string searchText) { var gateway = new PortalGateway(rootUrl); var customGeocode = new SingleInputCustomGeocode(relativeUrl) { Text = searchText }; var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.CustomGeocode <Polygon>(customGeocode)); }); Assert.Null(response.Error); Assert.NotNull(response.Candidates); Assert.True(response.Candidates.Any()); Assert.NotNull(response.Candidates.FirstOrDefault().Location); }
public async Task QueryCanReturnPointFeatures(string rootUrl, string relativeUrl) { var gateway = new PortalGateway(rootUrl); var query = new Query(relativeUrl.AsEndpoint()); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Query <Point>(query)); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.NotNull(result.SpatialReference); Assert.True(result.Features.Any()); Assert.Null(result.Links); Assert.True(result.Features.All(i => i.Geometry != null)); }
public async Task CanBuffer() { var gateway = new PortalGateway("http://sampleserver1.arcgisonline.com/ArcGIS"); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Query <Polygon>(new Query("Demographics/ESRI_Census_USA/MapServer/5".AsEndpoint()) { Where = "STATE_NAME = 'Texas'" })); }); var features = result.Features.Where(f => f.Geometry.Rings.Any()).ToList(); Assert.NotNull(features); await Buffer(gateway, features, result.SpatialReference); }
public async Task CanBuffer(string rootUrl, string relativeUrl, string where) { var gateway = new PortalGateway(rootUrl); var result = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.Query <Polygon>(new Query(relativeUrl) { Where = where })); }); var features = result.Features.Where(f => f.Geometry.Rings.Any()).ToList(); Assert.NotNull(features); await Buffer(gateway, features, result.SpatialReference); }
// [Fact] public async Task CanStopAndStartService() { var gateway = new PortalGateway("", "", ""); var folder = ""; // set this to only get a specific folder var site = await gateway.SiteReport(folder); Assert.NotNull(site); var services = site.ServiceReports.Where(s => s.Type == "MapServer"); Assert.NotNull(services); Assert.True(services.Any()); foreach (var service in services) { var sd = service.AsServiceDescription(); if (string.Equals("STARTED", service.Status.Actual, StringComparison.OrdinalIgnoreCase)) { var stoppedResult = await gateway.StopService(sd); Assert.NotNull(stoppedResult); Assert.Null(stoppedResult.Error); Assert.Equal("success", stoppedResult.Status); var startedResult = await gateway.StartService(sd); Assert.NotNull(startedResult); Assert.Null(startedResult.Error); Assert.Equal("success", startedResult.Status); } else { var startedResult = await gateway.StartService(sd); Assert.NotNull(startedResult); Assert.Null(startedResult.Error); Assert.Equal("success", startedResult.Status); var stoppedResult = await gateway.StopService(sd); Assert.NotNull(stoppedResult); Assert.Null(stoppedResult.Error); Assert.Equal("success", stoppedResult.Status); } } }
public async Task CanQueryDomains() { var gateway = new PortalGateway("http://gis.stlouiscountymn.gov/arcgis"); var queryDomains = new QueryDomains(@"PublicWorks/SignInventory/MapServer/") { LayerIdsToSearch = new List <int> { 0 } }; var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.QueryDomains(queryDomains)); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.True(result.Domains.Any()); }
public async Task CanGetServiceTileInfo(string rootUrl, string serviceId) { var gateway = new PortalGateway(rootUrl); var response = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.DescribeService(serviceId.AsEndpoint())); }); Assert.NotNull(response.SingleFusedMapCache); Assert.NotNull(response.TileInfo); Assert.NotNull(response.TileInfo.Lods); Assert.NotNull(response.TileInfo.Origin); Assert.NotNull(response.TileInfo.SpatialReference); Assert.NotNull(response.TileInfo.SpatialReference.Wkid); Assert.Equal(512, response.TileInfo.Rows); Assert.Equal(512, response.TileInfo.Cols); Assert.Equal(96, response.TileInfo.Dpi); }
public async Task CanSuggest(string rootUrl, string relativeUrl, string text) { var gateway = new PortalGateway(rootUrl); var suggest = new SuggestGeocode(relativeUrl) { Text = text }; var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Suggest(suggest)); }); Assert.Null(response.Error); Assert.NotNull(response.Suggestions); Assert.True(response.Suggestions.Any()); var result = response.Suggestions.First(); Assert.True(!string.IsNullOrWhiteSpace(result.Text)); }
public async Task CanUseServerInfoToGenerateToken(string rootUrl, string username, string password) { var gateway = new PortalGateway(rootUrl); var serverInfo = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.Info()); }); var tokenProvider = new TokenProvider(serverInfo.AuthenticationInfo.TokenServicesUrl, username, password); var token = await IntegrationTestFixture.TestPolicy.Execute(() => { return(tokenProvider.CheckGenerateToken(CancellationToken.None)); }); Assert.NotNull(token); Assert.NotNull(token.Value); Assert.False(token.IsExpired); Assert.Null(token.Error); }
public async Task CanGeocode(string rootUrl, string relativeUrl, string text, string sourceCountry = "") { var gateway = new PortalGateway(rootUrl); var geocode = new SingleInputGeocode(relativeUrl.AsEndpoint()) { Text = text, SourceCountry = sourceCountry }; var response = await gateway.Geocode(geocode); Assert.Null(response.Error); Assert.NotNull(response.SpatialReference); Assert.NotNull(response.Results); Assert.True(response.Results.Any()); var result = response.Results.First(); Assert.NotNull(result.Feature); Assert.NotNull(result.Feature.Geometry); }
public async Task CanReverseGeocodePoint(string rootUrl, string relativeUrl, double x, double y, int wkid) { var gateway = new PortalGateway(rootUrl); var reverseGeocode = new ReverseGeocode(relativeUrl.AsEndpoint()) { Location = new Point { X = x, Y = y, SpatialReference = new SpatialReference { Wkid = wkid } } }; var response = await gateway.ReverseGeocode(reverseGeocode); Assert.Null(response.Error); Assert.NotNull(response.Address); Assert.NotNull(response.Location); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.myButton); TextView textview = FindViewById <TextView>(Resource.Id.textView1); ArcGIS.ServiceModel.Serializers.JsonDotNetSerializer.Init(); var locator = new PortalGateway("http://geocode.arcgis.com/arcgis"); var geocode = new SingleInputGeocode("/World/GeocodeServer/".AsEndpoint()) { Text = "Wellington", SourceCountry = "NZL" }; var gateway = new PortalGateway("http://sampleserver3.arcgisonline.com/ArcGIS/"); var queryPoint = new Query(@"Earthquakes/EarthquakesFromLastSevenDays/MapServer/0".AsEndpoint()) { ReturnGeometry = false, Where = "MAGNITUDE > 4.5" }; button.Click += async delegate { var geocodeResult = await locator.Geocode(geocode); var resultPoint = await gateway.Query <Point>(queryPoint); textview.Text = string.Format("Query for earthquakes in last 7 days where magnitude is more than 4.5, {0} features found. Geocode result for Wellington, NZ x:{1}, y:{2}", resultPoint.Features.Count(), geocodeResult.Results.First().Feature.Geometry.X, geocodeResult.Results.First().Feature.Geometry.Y); }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button>(Resource.Id.myButton); TextView textview = FindViewById<TextView>(Resource.Id.textView1); ArcGIS.ServiceModel.Serializers.JsonDotNetSerializer.Init(); var locator = new PortalGateway("http://geocode.arcgis.com/arcgis"); var geocode = new SingleInputGeocode("/World/GeocodeServer/".AsEndpoint()) { Text = "Wellington", SourceCountry = "NZL" }; var gateway = new PortalGateway("http://sampleserver3.arcgisonline.com/ArcGIS/"); var queryPoint = new Query(@"Earthquakes/EarthquakesFromLastSevenDays/MapServer/0".AsEndpoint()) { ReturnGeometry = false, Where = "MAGNITUDE > 4.5" }; button.Click += async delegate { var geocodeResult = await locator.Geocode(geocode); var resultPoint = await gateway.Query<Point>(queryPoint); textview.Text = string.Format("Query for earthquakes in last 7 days where magnitude is more than 4.5, {0} features found. Geocode result for Wellington, NZ x:{1}, y:{2}", resultPoint.Features.Count(), geocodeResult.Results.First().Feature.Geometry.X, geocodeResult.Results.First().Feature.Geometry.Y); }; }
public async Task CanDescribeSite(string rootUrl) { var gateway = new PortalGateway(rootUrl); var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.DescribeSite()); }); Assert.NotNull(response); Assert.True(response.Version > 0); foreach (var resource in response.ArcGISServerEndpoints.Where(e => e.RelativeUrl.EndsWith("server", StringComparison.OrdinalIgnoreCase) && !e.RelativeUrl.EndsWith("searchserver", StringComparison.OrdinalIgnoreCase))) { var ping = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Ping(resource)); }); Assert.Null(ping.Error); } }
public async Task CanDescribeSite(string rootUrl) { var gateway = new PortalGateway(rootUrl); var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.DescribeSite()); }); Assert.NotNull(response); Assert.True(response.Version > 0); foreach (var resource in response.ArcGISServerEndpoints) { var ping = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Ping(resource)); }); Assert.Null(ping.Error); } }
public async Task CanDescribeLegend2(string rootUrl, string mapUrl, int?dpi, int?size) { var gateway = new PortalGateway(rootUrl); var request = new LegendsDescription(mapUrl.AsEndpoint()); request.Dpi = dpi; if (size.HasValue) { request.Size = new List <int>(); request.Size.Add(size.Value); request.Size.Add(size.Value); } var layerResponse = await IntegrationTestFixture.TestPolicy.Execute(() => { return(gateway.DescribeLegends(request)); }); Assert.NotNull(layerResponse); Assert.Null(layerResponse.Error); Assert.NotNull(layerResponse.Layers); Assert.True(layerResponse.Layers.Any()); }
public async Task CanGeocode(string rootUrl, string relativeUrl, string text, string sourceCountry = "") { var gateway = new PortalGateway(rootUrl); var geocode = new SingleInputGeocode(relativeUrl) { Text = text, SourceCountry = sourceCountry }; var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Geocode(geocode)); }); Assert.Null(response.Error); Assert.NotNull(response.SpatialReference); Assert.NotNull(response.Results); Assert.True(response.Results.Any()); var result = response.Results.First(); Assert.NotNull(result.Feature); Assert.NotNull(result.Feature.Geometry); }
public async Task CanExportMap(string rootUrl, string relativeUrl) { var gateway = new PortalGateway(rootUrl); var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.ExportMap(new ExportMap(relativeUrl) { ExportExtent = new Extent { XMin = -28695213.908633016, YMin = -32794.530181307346, XMax = 28695213.908633016, YMax = 19971868.880408566, SpatialReference = SpatialReference.WebMercator } })); }); Assert.NotNull(result); Assert.Null(result.Error); Assert.NotNull(result.ImageUrl); }
public async Task CanReverseGeocodePoint(string rootUrl, string relativeUrl, double x, double y, int wkid) { var gateway = new PortalGateway(rootUrl); var reverseGeocode = new ReverseGeocode(relativeUrl) { Location = new Point { X = x, Y = y, SpatialReference = new SpatialReference { Wkid = wkid } } }; var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.ReverseGeocode(reverseGeocode)); }); Assert.Null(response.Error); Assert.NotNull(response.Address); Assert.NotNull(response.Location); }
public async Task CanDescribeSiteServices(string rootUrl) { var gateway = new PortalGateway(rootUrl); var siteResponse = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.DescribeSite()); }); Assert.NotNull(siteResponse); Assert.True(siteResponse.Version > 0); var response = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.DescribeServices(siteResponse)); }); foreach (var serviceDescription in response) { Assert.NotNull(serviceDescription); Assert.Null(serviceDescription.Error); Assert.NotNull(serviceDescription.ServiceDescription); } }
public async Task QueryOrderByIsHonored(string rootUrl, string relativeUrl, string orderby) { var gateway = new PortalGateway(rootUrl); var query = new Query(relativeUrl.AsEndpoint()) { OrderBy = new List <string> { orderby }, ReturnGeometry = false, Where = "CITY = 'WA'" }; var result = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Query <Point>(query)); }); var queryDesc = new Query(relativeUrl) { OrderBy = new List <string> { orderby + " DESC" }, ReturnGeometry = false, Where = "CITY = 'WA'" }; var resultDesc = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.Query <Point>(queryDesc)); }); Assert.True(result.Features.Any()); Assert.True(resultDesc.Features.Any()); Assert.True(result.Features.Count() == resultDesc.Features.Count()); Assert.Equal(result.Features.First().Attributes[orderby], resultDesc.Features.Last().Attributes[orderby]); Assert.Equal(result.Features.Last().Attributes[orderby], resultDesc.Features.First().Attributes[orderby]); }
public async Task CanAddUpdateAndDeleteUsingGlobalIds() { var gateway = new PortalGateway("https://sampleserver6.arcgisonline.com/arcgis"); var feature = new Feature <Point>(); feature.Attributes.Add("type", 0); feature.Geometry = new Point { SpatialReference = new SpatialReference { Wkid = SpatialReference.WebMercator.Wkid }, X = -13073617.8735768, Y = 4071422.42978062 }; Guid newGlobalId = System.Guid.NewGuid(); feature.Attributes.Add("GlobalID", newGlobalId); feature.Attributes.Add("creator", "Anywhere.ArcGIS"); var adds = new ApplyEdits <Point>(@"Sync/SaveTheBaySync/FeatureServer/0".AsEndpoint()) { Adds = new List <Feature <Point> > { feature }, UseGlobalIds = true }; var resultAdd = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.ApplyEdits(adds)); }); Assert.True(resultAdd.Adds.Any()); Assert.True(resultAdd.Adds.First().Success); Assert.Equal(resultAdd.ExpectedAdds, resultAdd.ActualAdds); Assert.Equal(resultAdd.ActualAdds, resultAdd.ActualAddsThatSucceeded); var id = resultAdd.Adds.First().GlobalId; Assert.Equal(newGlobalId.ToString("B"), id); feature.Attributes.Add("comments", "something"); // problem with serialization means we need single quotes around string values feature.Attributes.Add("editor", "Anywhere.ArcGIS"); var updates = new ApplyEdits <Point>(@"Sync/SaveTheBaySync/FeatureServer/0") { Updates = new List <Feature <Point> > { feature }, UseGlobalIds = true }; var resultUpdate = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.ApplyEdits(updates)); }); Assert.True(resultUpdate.Updates.Any()); // Note - Success returns false, even though it's worked. // Assert.True(resultUpdate.Updates.First().Success); Assert.Equal(1, resultUpdate.ExpectedUpdates); Assert.Equal(1, resultUpdate.ActualUpdates); Assert.Equal(resultUpdate.ExpectedUpdates, resultUpdate.ActualUpdates); // Note - resultUpdate.ActualUpdatesThatSucceeded returns 0, even though it's worked. // Assert.Equal(resultUpdate.ActualUpdates, resultUpdate.ActualUpdatesThatSucceeded); // Not sure why, but GlobalId in Updates is in D format, not B format. Assert.Equal(newGlobalId.ToString("D"), resultUpdate.Updates.First().GlobalId); var deletes = new ApplyEdits <Point>(@"Sync/SaveTheBaySync/FeatureServer/0".AsEndpoint()) { DeleteGlobalIds = new List <Guid> { newGlobalId }, UseGlobalIds = true }; var resultDelete = await IntegrationTestFixture.TestPolicy.ExecuteAsync(() => { return(gateway.ApplyEdits(deletes)); }); Assert.True(resultDelete.Deletes.Any()); Assert.True(resultDelete.Deletes.First().Success); // resultDelete.ExpectedDeletes returns 0 - not expected value (1). // Assert.Equal(resultDelete.ExpectedDeletes, resultDelete.ActualDeletes); Assert.Equal(1, resultDelete.ActualDeletes); Assert.Equal(1, resultDelete.ActualDeletesThatSucceeded); Assert.Equal(resultDelete.ActualDeletes, resultDelete.ActualDeletesThatSucceeded); Assert.Equal(resultDelete.Deletes.First().GlobalId, id); }