Google 地图 Android 从 GeoJsonFeature 获取点的 LatLng 数组
Google Maps Android get LatLng array of points from GeoJsonFeature
单击属于 geojson 特征的线时如何获取点列表?我需要访问每条线的各个点?这不起作用:lineStringFeature.getPolylineOptions().getPoints()。非常感谢。
// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener(new GeoJsonLayer.OnFeatureClickListener() {
@Override
public void onFeatureClick(Feature feature) {
GeoJsonFeature lineStringFeature;
GeoJsonLineStringStyle lineStringStyle = new GeoJsonLineStringStyle();
lineStringFeature = (GeoJsonFeature) feature;
lineStringStyle.setColor(Color.GREEN);
lineStringStyle.setZIndex(10f);
lineStringStyle.setWidth(6f);
lineStringFeature.setLineStringStyle(lineStringStyle);
// this doesn't work how do you get an array of LatLngs
lineStringFeature.getPolylineOptions().getPoints().get(0);
}
}
GeoJsonFeature
对象有一个getGeometry()
method that returns the geometry (you can cast it to GeoJsonLineString
if you are sure of the type), and the GeoJsonLineString
object has a getCoordinates()
方法,returns一个List<LatLng>
坐标:
if ("LineString".equalsIgnoreCase(lineStringFeature.getGeometry().getType())) {
List<LatLng> coordinates = ((GeoJsonLineString) lineStringFeature.getGeometry()).getCoordinates();
// Do something with the coordinates
} else if ("MultiLineString".equalsIgnoreCase(lineStringFeature.getGeometry().getType())) {
for (GeoJsonLineString linestring : ((GeoJsonMultilineString) lineStringFeature.getGeometry()).getLineStrings()) {
List<LatLng> coordinates = linestring.getCoordinates();
// Do something with the coordinates. Take into account that one MultiLinestring is composed of several Linestrings
}
}
单击属于 geojson 特征的线时如何获取点列表?我需要访问每条线的各个点?这不起作用:lineStringFeature.getPolylineOptions().getPoints()。非常感谢。
// Set a listener for geometry clicked events.
layer.setOnFeatureClickListener(new GeoJsonLayer.OnFeatureClickListener() {
@Override
public void onFeatureClick(Feature feature) {
GeoJsonFeature lineStringFeature;
GeoJsonLineStringStyle lineStringStyle = new GeoJsonLineStringStyle();
lineStringFeature = (GeoJsonFeature) feature;
lineStringStyle.setColor(Color.GREEN);
lineStringStyle.setZIndex(10f);
lineStringStyle.setWidth(6f);
lineStringFeature.setLineStringStyle(lineStringStyle);
// this doesn't work how do you get an array of LatLngs
lineStringFeature.getPolylineOptions().getPoints().get(0);
}
}
GeoJsonFeature
对象有一个getGeometry()
method that returns the geometry (you can cast it to GeoJsonLineString
if you are sure of the type), and the GeoJsonLineString
object has a getCoordinates()
方法,returns一个List<LatLng>
坐标:
if ("LineString".equalsIgnoreCase(lineStringFeature.getGeometry().getType())) {
List<LatLng> coordinates = ((GeoJsonLineString) lineStringFeature.getGeometry()).getCoordinates();
// Do something with the coordinates
} else if ("MultiLineString".equalsIgnoreCase(lineStringFeature.getGeometry().getType())) {
for (GeoJsonLineString linestring : ((GeoJsonMultilineString) lineStringFeature.getGeometry()).getLineStrings()) {
List<LatLng> coordinates = linestring.getCoordinates();
// Do something with the coordinates. Take into account that one MultiLinestring is composed of several Linestrings
}
}