单击作为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()
方法(如果您确定类型,可以将其强制转换为GeoJsonLineString
(,GeoJsonLineString
对象有一个返回坐标List<LatLng>
的getCoordinates()
方法:
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
}
}