小编Ant*_*nte的帖子

如何在java上创建正六边形以放在地图上?

我正在尝试创建规则的六边形多边形,但是当在地图上可视化时,它们会垂直拉伸。

我就是这样做的:

List<Geometry> hexagons = new ArrayList<>();
        CoordinateReferenceSystem sourceCRS = DefaultGeographicCRS.WGS84;
        ReferencedEnvelope gridBounds = new ReferencedEnvelope(box[0], box[2], box[1], box[3], sourceCRS);
        double sideLen = 0.1;
        GridFeatureBuilder builder = new DefaultGridFeatureBuilder();
        SimpleFeatureSource grid = Hexagons.createGrid(gridBounds, sideLen, HexagonOrientation.FLAT, builder);
        try{
            SimpleFeatureCollection collection = grid.getFeatures();
            FeatureIterator iterator = collection.features();
            while (iterator.hasNext()){
                Feature feature = iterator.next();
                SimpleFeature sFeature = (SimpleFeature) feature;
                
                Geometry geometry = (Geometry) sFeature.getAttribute(0);
                hexagons.add(geometry);
            }

        } catch(Exception e){
            e.printStackTrace();
        }
        return hexagons;
Run Code Online (Sandbox Code Playgroud)

这

就是它在地图上的样子。我尝试将方向从“平面”更改为“角度”,但这并没有解决问题。

java gis coordinates hexagonal-tiles geotools

4
推荐指数
1
解决办法
54
查看次数

标签 统计

coordinates ×1

geotools ×1

gis ×1

hexagonal-tiles ×1

java ×1