All Projects → davetimmins → Anywhere.arcgis

davetimmins / Anywhere.arcgis

Licence: mit
🌏 Use ArcGIS Server REST resources without an official SDK.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Anywhere.arcgis

wab-widget-search
A simple page to filter and find Esri Web AppBuilder widgets.
Stars: ✭ 16 (-72.41%)
Mutual labels:  arcgis
registrant
Python package used for generating HTML reports about the contents of Esri geodatabases.
Stars: ✭ 44 (-24.14%)
Mutual labels:  arcgis
Terraformer
A geographic toolkit for dealing with geometry, geography, formats, and building geo databases
Stars: ✭ 643 (+1008.62%)
Mutual labels:  arcgis
data-collection-ios
Mobile data collection app using the iOS Runtime SDK.
Stars: ✭ 24 (-58.62%)
Mutual labels:  arcgis
terraformer-arcgis-parser
No description or website provided.
Stars: ✭ 30 (-48.28%)
Mutual labels:  arcgis
Arcgis Osm Editor
ArcGIS Editor for OpenStreetMap is a toolset for GIS users to access and contribute to OpenStreetMap through their Desktop or Server environment.
Stars: ✭ 281 (+384.48%)
Mutual labels:  arcgis
HiSpatialCluster
Clustering spatial points with algorithm of Fast Search, high performace computing implements of CUDA or parallel in CPU, and runnable implements on python standalone or arcgis.
Stars: ✭ 31 (-46.55%)
Mutual labels:  arcgis
Arcgis Python Api
Documentation and samples for ArcGIS API for Python
Stars: ✭ 954 (+1544.83%)
Mutual labels:  arcgis
maps-app-ios
Your organisation's mapping app built with the Runtime SDK for iOS
Stars: ✭ 16 (-72.41%)
Mutual labels:  arcgis
Koop
🔮 Transform, query, and download geospatial data on the web.
Stars: ✭ 505 (+770.69%)
Mutual labels:  arcgis
maps-app-dotnet
Your organization's suite of cross platform mapping apps built with the ArcGIS Runtime SDK for .NET
Stars: ✭ 20 (-65.52%)
Mutual labels:  arcgis
WLib
Personally compiled C#.NET + ArcObject/ArcEngine common code base, most of which are packaged as static methods or extension methods, including detailed comments
Stars: ✭ 22 (-62.07%)
Mutual labels:  arcgis
Geo Golang
Go library to access geocoding and reverse geocoding APIs
Stars: ✭ 394 (+579.31%)
Mutual labels:  arcgis
ArcGIS.PCL
Migrated to https://github.com/davetimmins/Anywhere.ArcGIS
Stars: ✭ 39 (-32.76%)
Mutual labels:  arcgis
Hadoop For Geoevent
ArcGIS GeoEvent Server sample Hadoop connector for storing GeoEvents in HDFS.
Stars: ✭ 5 (-91.38%)
Mutual labels:  arcgis
geoservices-js
Deprecated - please consider using @esri/arcgis-rest-js
Stars: ✭ 53 (-8.62%)
Mutual labels:  arcgis
configurable-app-components
Custom 4.x widgets built with the ArcGIS API for JavaScript.
Stars: ✭ 25 (-56.9%)
Mutual labels:  arcgis
Osmquery
Query OSM data and add results to your ArcGIS project
Stars: ✭ 33 (-43.1%)
Mutual labels:  arcgis
Data Collection Dotnet
Data collection application built using the .NET Runtime SDK.
Stars: ✭ 17 (-70.69%)
Mutual labels:  arcgis
Wicket
A modest library for moving between Well-Known Text (WKT) and various framework geometries
Stars: ✭ 484 (+734.48%)
Mutual labels:  arcgis

Anywhere.ArcGIS

Build status Build status

NuGet Status GitHub Status

MyGet feed MyGet Status

Use ArcGIS Server REST resources without an official SDK. This is a netstandard 2.0 library, it was ported from ArcGIS.PCL. It is not endorsed, affiliated or supported by Esri.

A typical use case would be the need to call some ArcGIS REST resource from server .NET code or maybe a console app. The features that this returns can be used directly as Esri JSON in JavaScript apps using the Esri JS API.

Works with secure and non-secure ArcGIS Server on premise / in the cloud, Portal for ArcGIS and ArcGIS Online. Also supports converting GeoJSON ↔️ ArcGIS Features.

Quickstart

If you are calling a REST operation you will need to create a gateway to manage the request. There are a few different ones but the most basic is called PortalGateway and this can be used for connecting directly to services with ArcGIS Server.

Create an instance of that by specifying the root url of your server. The format of the root url is scheme://host:port/instance so a typical default ArcGIS Server for your local machine would be http://localhost:6080/arcgis, note that you do not need to include rest/services in either the root url or your relative urls as it gets added automatically. One thing to look out for is that the url is case sensitive so make sure you enter it correctly.

var gateway = new PortalGateway("https://sampleserver3.arcgisonline.com/ArcGIS/");

// If you want to access secure resources then pass in a username / password
// this assumes the token service is in the default location for the ArcGIS Server
var secureGateway = new PortalGateway("https://sampleserver3.arcgisonline.com/ArcGIS/", "username", "password");

// Or use the static Create method which will discover the token service Url from the server Info endpoint
var autoTokenProviderLocationGateway = await PortalGateway.Create("https://sampleserver3.arcgisonline.com/ArcGIS/", "username", "password");

Now you have access to the various operations supported by it. For example to call a query against a service

var query = new Query("Earthquakes/EarthquakesFromLastSevenDays/MapServer/0".AsEndpoint())
{ 
    Where = "magnitude > 4.0" 
};
var result = await gateway.Query<Point>(query);

Capabilities

Supports the following as typed operations:

  • CheckGenerateToken create a token automatically via an ITokenProvider
  • Query query a layer by attribute and / or spatial filters, also possible to do BatchQuery
  • QueryForCount only return the number of results for the query operation
  • QueryForIds only return the ObjectIds for the results of the query operation
  • QueryForExtent return the bounding extent for the result of the query operation
  • QueryAttachments return attachments grouped by the source feature object Ids and global id
  • QueryDomains returns full domain information for the domains referenced by the layers in the service
  • Find search across n layers and fields in a service
  • ApplyEdits post adds, updates and deletes to a feature service layer
  • DeleteFeatures delete features in a feature layer or table
  • Geocode single line of input to perform a geocode using a custom locator or the Esri world locator
  • CustomGeocode single line of input to perform a geocode using a custom locator
  • Suggest lightweight geocode operation that only returns text results, commonly used for predictive searching
  • ReverseGeocode find location candidates for a input point location
  • Simplify alter geometries to be topologically consistent
  • Project convert geometries to a different spatial reference
  • Buffer buffers geometries by the distance requested
  • DescribeSite returns a url for every service discovered
  • CreateReplica create a replica for a layer
  • UnregisterReplica unregister a replica based on the Id
  • DeleteAttachments delete attachments that are associated with a feature
  • Ping verify that the server can be accessed
  • Info return the server information such as version and token authentication settings
  • DescribeLegends return legend information of layers
  • DescribeServices return services information (name, sublayers etc.)
  • DescribeService return service information (name, sublayers etc.)
  • DescribeLayer return layer information
  • HealthCheck verify that the server is accepting requests
  • GetFeature return a feature from a map/feature service
  • ExportMap get an image (or url to the image) of a service

REST admin operations:

  • PublicKey - admin operation to get public key used for encryption of token requests
  • ServiceStatus - admin operation to get the configured and actual status of a service
  • ServiceReport - admin operation to get the service report
  • StartService - admin operation to start a service
  • StopService - admin operation to stop a service
  • ServiceStatistics - admin operation to get the statistics of a service

There are also methods to add / update and download attachments for a feature and you can extend this library by writing your own operations.

Refer to the integration test project for more examples.

Can I help to improve it and/or fix bugs?

Absolutely! Please feel free to raise issues, fork the source code, send pull requests, etc.

No pull request is too small. Even whitespace fixes are appreciated. Before you contribute anything make sure you read CONTRIBUTING.

Installation

NuGet Package Manager

Install-Package Anywhere.ArcGIS

.NET CLI

dotnet add package Anywhere.ArcGIS

Paket CLI

paket add Anywhere.ArcGIS

You can also get the code from this site.

What do the version numbers mean?

Anywhere.ArcGIS uses Semantic Versioning.

Icon

Icon made by Freepik from www.flaticon.com

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].