我目前正在编写一个室内导航应用程序的颤振和我是相当新的颤振和达特。为此,我使用并希望扩展基于mapsforge的库mapsforge_flutter。使用mapsforge_flutter,我可以下载OpenStreetMap地图,然后在电话上呈现。问题是,地图上的线条看起来像这样像素化:

AntiAliasing尚未在mapsforge_flutter中实现,所以我认为问题可能就在这里。在最初的mapsforge中,地图看起来没有那么像像素。
AA是以这种方式在原始图书馆中实现的:
// in Parameters.java:
//If true will use anti-aliasing in rendering.
public static boolean ANTI_ALIASING = true;
// in AndroidPaint.java:
AndroidPaint() {
paint = new android.graphics.Paint();
this.paint.setAntiAlias(Parameters.ANTI_ALIASING);
this.paint.setStrokeCap(getAndroidCap(Cap.ROUND));
this.paint.setStrokeJoin(android.graphics.Paint.Join.ROUND);
this.paint.setStyle(getAndroidStyle(Style.FILL));
}
// in AwtCanvas.java:
AwtCanvas(Graphics2D graphics2D) {
this.graphics2D = graphics2D;
setAntiAlias(Parameters.ANTI_ALIASING);
createFilters();
}
public void setBitmap(Bitmap bitmap) {
if (bitmap == null) {
this.bufferedImage = null;
this.graphics2D = null;
} else {
this.bufferedImage = AwtGraphicFactory.getBitmap(bitmap);
this.graphics2D = this.bufferedImage.createGraphics();
setAntiAlias(Parameters.ANTI_ALIASING);
this.graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
this.graphics2D.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
}
}在mapsforge_flutter中,有两个类:Map画布和Flutter画布,它们具有以下方法,必须实现:
// in Fluttercanvas.dart:
bool isAntiAlias() {
// TODO: implement isAntiAlias
return null;
}
@override
void setAntiAlias(bool aa) {
// TODO: implement setAntiAlias
}
// in Mapcanvas.dart:
bool isAntiAlias();有没有人想过,如何在颤振/飞镖中实现这一点?文档(https://api.flutter.dev/flutter/dart-ui/Paint/isAntiAlias.html)中的方法似乎对我不起作用。
提前感谢!
发布于 2022-08-08 04:54:15
颤动的地图呈现问题是众所周知的。目前还没有已知的解决办法,您可以跟踪此开放GitHub发行票以获得更多详细信息。
https://stackoverflow.com/questions/63485181
复制相似问题