jiayuasu opened a new pull request, #2647: URL: https://github.com/apache/sedona/pull/2647
## Did you read the Contributor Guide? - Yes, I have read the [Contributor Rules](https://sedona.apache.org/latest/community/rule/) and [Contributor Development Guide](https://sedona.apache.org/latest/community/develop/) ## Is this PR related to a ticket? - Yes, and the PR name follows the format `[GH-XXX] my subject`. Closes #2610 ## What changes were proposed in this PR? This PR integrates [proj4sedona](https://github.com/jiayuasu/proj4sedona) (v0.0.3) as the default CRS transformation engine for vector geometries in Apache Sedona. proj4sedona is a pure Java implementation with no LGPL dependencies, replacing GeoTools for vector CRS transformations. ### New CRS format support | Format | Example | |--------|---------| | **EPSG code** | `EPSG:4326`, `EPSG:3857` (also ESRI, IAU, SR-ORG authorities)| **EPSG code** | `EPSG:4326`, `EPSG:3857` (also ESRI, IAU, SR* (ISO 19162:2019) | `PROJC| **EPSG c`GEOGCRS[...]` | | **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PRO`{"typ| **PROJ strin| **PROJ strin| **PROJ strin| sourc| **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PRO`{"typ| **PROJ strin| **PROJ strin| **PROJ strin| sourc| **PROJ strin| **PROJ strin| **PROJ strin| **P, `| **PROJ strin| **PROJ strin| trans| **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PROJ strin| **PRnad| **PROJ strin| **PROJ strin| **PROJ s+nadgrids=@us_noaa_conus.tif` - HTTPS URL: `+nadgrids=https://cdn.proj.org/us_noaa_conus.tif` ### Configuration New Spark config `spark.sedona.crs.geotools` controls the CRS engine: | Value | Behavior | |-------|----------| | `none` | proj4sedona for all transformations | | `raster` **(default)** | proj4sedona for vector, GeoTools for| `raster` **(ll` | G| `raster` **(default)** | proj4sedona for vector, GeoTools for| `raster` **(ll` | G| `raster` **(default)** | proj4sedona for vector, GeoTools for| `raster` **(ll` | G| `raster` **(default)** form` API unchanged** — 2-arg, 3-arg, and 4-arg overloads preserved. The `lenient` parameter is kept for API compatibility (ignored by proj4sedona) - **Snowflake fully migrated** — `GeoToolsWrapper` removed; Snowflake uses `FunctionsProj4` directly - **Driver-side config resolution** — `useGeoTools` boolean resolved on the Spark driver and serialized to executors, avoiding executor-side SparkSession access - Added `proj4sedona` (v0.0.3) dependency to root, common, flink, and snowflake POMs ## How was this patch tested? - **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests**emo- **Unit tests*datory- **Unit tests** ll, - **Unit tests** (`FunctionsProj4- **Unit testRID- **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests**emo- **Unit tests*datory- **Unit tests** ll, - **Unit tests** (`FunctionsProj4- **Unit testRID- **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests** (`FunctionsProj4- **Unit tests**tes- **Unit tests**emo- **Unit tests*datory- **Unit tests** ll, - **Unit tests** (`FunctionsProj4- **Unit tes data for OSGB36↔ETRS89 accuracy validation) - **Updated existing tests**: Flink, Snowflake, Spark, and - **Updated existing tests**: Flink, Snowflake, Spark, and - **Updated existing tests**: Flink, Snowflake, Spark, and - **Updated existing tests**: Flink, SnowflHO- **Updated existing tests**: Flink, Snowflake, Spark, and - **Updated existing tessql- **Updated existing tests**ring all CRS formats, grid files, coordinate order, and SRID usage with SQL examples - Updated `ST_Transform` entries in Spark, Flink, and Snowflake function docs - Added `spark.sedona.crs.geotools` parameter to `docs/api/sql/Parameter.md` - Added navigation entry in `mkdocs.yml` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
