Get coordinates of geogson feature in Mapbox
Asked Answered
T

2

7

A GeoJson feature looks like this :

{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "Point",
    "coordinates": [
      43.59375,
      59.17592824927136
    ]
  }
}

In Mapbox using Java/JVM we can construct the feature like this :

val testFeature = Feature.fromGeometry(Point.fromLngLat(2.0,3.0))

But I don't seem to find a method to get coordinates/point back from the feature.

There is a Feature#getGeometry() but I can't get the coordinates from that either as that's just a sugar for the GeoJson interface itself.

Timework answered 27/1, 2019 at 4:6 Comment(0)
T
8

I just found that Each Feature expose the method .geometry() which we can cast to any type (Point, Line, polygon, Multipoit.. etc). From there we can get the either Point or List<Point>.

Example :

val position1 = feature1.geometry() as Point
val longitude = position1.longitude()

val area1 = feature2.geometry() as MultiPoint
val firstPointLatitude = area1.coordinates()!![0].latitude()
Timework answered 30/1, 2019 at 2:38 Comment(1)
Looks like this throws an error <java.lang.ClassCastException: com.mapbox.geojson.Polygon cannot be cast to com.mapbox.geojson.MultiPoint>Inquiry
L
1

Each feature has a .coordinates() method that returns a List<Point> or List<List<Point> object (unless you're calling it on a Point feature, in which case it will return a List<Double>.

[source: core API's geojson documentation]

Landgrabber answered 29/1, 2019 at 22:28 Comment(1)
Feature.class doesn't have a .coordinates() method though — you'd have to call feature.geometry() and then cast to a specific feature type firstPoisonous

© 2022 - 2024 — McMap. All rights reserved.