Base Classes for entire ESRI Stack (Java)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 15/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- java
- Domain
- backend-api-design
Research direction
This issue proposes shared base classes across the Geometry API, Android SDK, and Quartz API rather than naming a scoped change. Start by comparing GeometryEngine.java and the linked Geometry API and SDK references; the issue provides no tests, entry point, or concrete completion criteria, so the desired design would need to be agreed before implementation.
Written by the indexing model from the issue text.
Description
In summary, I believe that this project (or refactored project) should be the base Geometry library for all ESRI Java projects, where other ESRI SDKs reference this project.
Quoting from my comments on the Early Adopter feedback forum (ArcGIS Runtime SDK for Android)
I'd like to start a discussion around the various base classes that we use in the SDKs and other software.
Many base classes (e.g. Point) are available from the Geometry API Java, which is a great open source resource. It would be wonderful if the released SDKs also used those base classes (gradle / mvn dependency) as that helps avoid namespace collisions or boilerplate to convert one ESRI point to another ESRI point.
Whilst working on the production API I have come across numerous collisions, which slows productivity. Right this second, The Geometry API has "GeometryEngine.geodesicDistanceOnWGS84" whereas the Android SDK requires us to use [GeometryEngine.geodesicDistance"](https://developers.arcgis.com/android/api-reference/reference/com/esri/core/geometry/GeometryEngine.html#geodesicDistance%28com.esri.core.geometry.Point, com.esri.core.geometry.Point, com.esri.core.geometry.SpatialReference, com.esri.core.geometry.LinearUnit%29) - both in the same namespace. I see in the Quartz API we have distanceBetween, which is a third permutation. Similarly, Geometry.dropAllAttributes is public in the geometry API but default in the Android SDK.
An ideal way forward would be to have well defined base classes (open source as the geometry library that everyone can use throughout their private code but ALSO enables them to easily access the ESRI SDK methods.
@shellygill
- Dominant language
- Java
- Stars
- 710
- Forks
- 268
- Avg merge
- 7d 23h
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Esri/geometry-api-java
-
bug fixed_to_verify
Esri/geometry-api-java#328 · 3 comments · 1 assignee ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
Esri/geometry-api-java#324 · 17 comments · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Esri/geometry-api-java#321 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 30/100
Esri/geometry-api-java#320 · 1 comment ·
-
cannot reproduce
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Esri/geometry-api-java#316 · 5 comments ·
All issues in Esri/geometry-api-java
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
elastic/gradle-plugins#157 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cryptomator/hub#497 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
johanhaleby/occurrent#1120 ·