我正在尝试使用TileCreator生成作为多边形集合的图块。我正在使用tileCreator.renderData(),tileCreator.saveAll()之类的方法。这些都工作正常。但是saveAll()方法需要花费大量时间才能将映像放入文件系统中。

TileCreator tileCreator= new TileCreator(
                    directory,
                    zoomLevel,
                    new TileRenderer[] { new ValueAsColoredShapeRenderer(color) {
                    } });

            Double [][]kmllatlonbounds=new Double[][]{{1000.0,1000.0},{-1000.0,-1000.0}};
            tileCreator.kmllatlon=new ArrayList<ArrayList<Double>>();
            for(int i=0;i<jsArray2.length();i++){

                JSONArray bound = jsArray2.getJSONArray(i);
                //System.out.println("Zoom Level: "+zoomLevel+" Bound[0]: "+bound.getDouble(0)+"Bound[1]: "+bound.getDouble(1));
                Double lon = bound.getDouble(0);
                Double lat = bound.getDouble(1);
                if(lat>kmllatlonbounds[1][0])
                {
                    kmllatlonbounds[1][0]=lat;
                }
                if(lat<kmllatlonbounds[0][0])
                {
                    kmllatlonbounds[0][0]=lat;
                }
                if(lon>kmllatlonbounds[1][1])
                {
                    kmllatlonbounds[1][1]=lon;
                }
                if(lon<kmllatlonbounds[0][1])
                {
                    kmllatlonbounds[0][1]=lon;
                }

                double[] meters = tileCreator.getMercator().LatLonToMeters(lat, lon);
                int[] metersToPixels = tileCreator.getMercator().MetersToPixels(meters[0],meters[1], zoomLevel);

                ArrayList<Double> tmplatlon=new ArrayList<Double>();
                tmplatlon.add((double)metersToPixels[1]);
                tmplatlon.add((double)metersToPixels[0]);
                tileCreator.kmllatlon.add(tmplatlon);
                }
            tileCreator.renderData(kmllatlonbounds);
            tileCreator.saveAll();


在内部,我正在使用ImageIo类进行读/写操作。我认为问题出在ImageIo,但无法解决。
谁能帮帮我吗?因为我要100%优化,因为要花费数小时才能生成图块...

最佳答案

如果您没有任何内存限制,则可以通过增加ImageCache.java中的缓存大小来降低SaveAll()的频率。

07-27 13:45