Google Maps Android从GeoJsonFeature获取LatLng点数组



单击作为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
    }
}

最新更新