2016-07-07 8 views
0

Ich versuche, ein sehr großes floormap Bild (PNG der Größe 618KB und Auflösung 7062 x 7582) mit Openlayers 3.16.0 auf einem Android 5.1.1-Gerät.Sehr langsam bei der Verwendung von openlayers 3.16.0 Laden einer großen Karte auf Android post-Kitkat webview

Ich kann kaum auf dem WebView scrollen, um die Grundkarte zu schwenken. Manchmal stürzte die App selbst ab. Wenn ich die Webansicht mit Chrome inspiziere, werden folgende Meldungen angezeigt:

Verzögerte lange laufende Zeitgeberaufgabe (n), um die Laufruhe zu verbessern. Siehe crbug.com/574343.

I Hardware-Beschleunigung auf die Aktivität der Webansicht aktiviert haben und hier sind die WebSettings der Webansicht:

WebSettings webSettings = getSettings(); 
webSettings.setJavaScriptEnabled(true); 
webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH); 
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); 
webSettings.setDatabaseEnabled(true); 
webSettings.setAppCacheEnabled(true); 
webSettings.setDomStorageEnabled(true); 
webSettings.setLoadWithOverviewMode(false); 
webSettings.setUseWideViewPort(true); 
webSettings.setSupportZoom(false); 

webSettings.setAppCachePath(dir.getPath()); 
webSettings.setAllowFileAccess(true); 
webSettings.setAppCacheMaxSize(1024 * 1024 * 50); 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
    setLayerType(View.LAYER_TYPE_HARDWARE, null); 
} else { 
    setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 

enableCrossDomain(); 

setWebChromeClient(new WebChromeClient()); 

Darf ich wissen, wie die Leistung zu verbessern und auf die floormap Laden Openlayers 3 auf Android mit Webansicht?

Antwort

1

Möglicherweise geschieht dies, weil es eine Vektorschicht mit vielen Informationen ist, also ist es schwer zu rendern. Um die Leistung zu verbessern, können Sie mit einem Fliesenschicht versuchen, aus .png Bilder:

var layer = new ol.layer.Tile({ 
    name:"Mapa", 
    isBaseLayer:true, 
    visible:true, 
    source: new ol.source.OSM({ 
    url:'../layers/tiles/{z}/{x}/{y}.png' 
    }), 
    })); 

Mit Hilfe von this code, können Sie eine einfache App bauen für sich selbst die Karte in .png Bilder zu exportieren. Denken Sie daran, sie mit dem richtigen Ordnerformat zu speichern (z/x/y). Viel Glück!