A lightweight Golang SDK for Arcgis REST Services. Inspired by
arcgis-rest-js
Table of Contents
WORK IN PROGRESS: arcgis-sdk is a lightweight, modular golang wrapper for Esri's ArcGis rest services. Currently it supports API Key based Authentication and Geocoding/Reverse Geocoding services. The SDK is designed to be modular and extensible, allowing for easy integration with other ArcGis services.
► Geocode and Reverse geocode your data into well structured lightweight structs!
└── arcgis-sdk/
├── .github
│ └── workflows
├── LICSENSE.md
├── auth
│ ├── auth.go
│ ├── auth_errors.go
│ ├── auth_manager.go
│ └── auth_test.go
├── geocode
│ ├── Address.go
│ ├── errors.go
│ ├── geocode.go
│ ├── geocode_test.go
│ └── reverse.go
├── go.mod
├── go.sum
├── main.go
├── requests
│ ├── request.go
│ ├── request_options.go
│ └── requests_test.go
└── utils
└── utils.go
auth
File | Summary |
---|---|
auth_test.go | Authentication Manager tests |
auth.go | Main auth package, exports the APIKeymanager |
auth_errors.go | Auth Specific Error Logic and Types |
auth_manager.go | Auth Manager and definitions |
utils
File | Summary |
---|---|
utils.go | ► All utility functions |
requests
File | Summary |
---|---|
requests_test.go | Tests for Requests module |
request.go | Main Requests wrapper, can be used to ingest custom request options for different rest services |
request_options.go | Type Definition for Request Options |
.github.workflows
File | Summary |
---|---|
go.yml | Release Pipeline |
geocode
File | Summary |
---|---|
Address.go | Address type definitions |
geocode.go | Main Geocoder and related code |
reverse.go | Main reverse Geocoder and related code |
geocode_test.go | geocode and reversegeocode test |
errors.go | API Error Definitions |
System Requirements:
- Go:
version 1.21
- Install the package using the command below:
$ go get github.com/raghuganapathyUCR/arcgis-sdk
We recommend downloading the modules you need using the
go get
command. Example:go get github.com/raghuganapathyUCR/arcgis-sdk/geocode
to get the geocode module.
- Clone the arcgis-sdk repository:
$ git clone https://github.com/raghuganapathyUCR/arcgis-sdk
- Change to the project directory:
$ cd arcgis-sdk
- Install the dependencies:
$ go build -o myapp
Run arcgis-sdk using the command below:
$ ./myapp
Run the test suite using the command below:
$ go test ./...
-
► Complete the Basic SDK Structure
-
► Complete the Geocoder and Reverse Geocoder
-
► Implement the Bulk and Batch Geocoding
-
► Implement Enterprise Support
-
► Implement the Routing and Navigation
-
► Implement the Spatial Analysis
-
► Implement Places and Location Services
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
arcgis-sdk
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/raghuganapathyUCR/arcgis-sdk
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Many thanks to ESRI for their arcgis-rest-js project, which inspired this SDK.