Geoshi is a GeoJSON Adapter for Moshi
Initialize your Moshi instance with the following:
val moshi: Moshi = Moshi.Builder()
.add(GeoshiJsonAdapterFactory())
//Do stuffs
.build()
You can then start using the data classes provided. Out-of-box, 10 objects are provided
- FeatureCollection
- Feature
- GeometryCollection
- Position
- Point
- LineString
- Polygon
- MultiPoint
- MultiLineString
- MultiPolygon
For example, you can convert this following string into Point
val jsonString = "{\"type\":\"Point\",\"coordinates\":[100.0,0.0]}"
val point = moshi.adapter(Point::class.java).fromJson(jsonString)
print(point) //Point(coordinates=Position(longitude=100.0, latitude=0.0, altitude=null)
This is very alpha release, and still requires a lot of things to be stable. It does some basic validations but it still requires more validations checks according to GeoJSON specification. PR are welcomed
For gradle:
repositories {
jcenter()
}
compile 'com.aungkyawpaing.geoshi:geoshi-adapter:0.0.2'
Copyright 2019 Aung Kyaw Paing
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.