Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get coordinates of geogson feature in Mapbox

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.

like image 361
erluxman Avatar asked Jan 27 '19 04:01

erluxman


2 Answers

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()
like image 161
erluxman Avatar answered Nov 15 '22 21:11

erluxman


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]

like image 31
riastrad Avatar answered Nov 15 '22 22:11

riastrad