2016-07-07 4 views
0

openlayers 3.16.0を使用して非常に大きなfloormapイメージ(サイズ618KBのPNGと解像度7062 x 7582)をロードしようとしていますAndroid 5.1.1デバイス。openlayersを使用すると非常に遅れます3.16.0 Androidのpost-Kitkat webviewに大きなフロアマップをロード

WebViewをスクロールしてフロアマップをパンすることはほとんどできません。アプリがクラッシュすることがあります。クロムを使用してwebviewを調べると、次のメッセージが表示されます。

スローさの滑らかさを向上させるための長時間の遅延タイマータスク。 crbug.com/574343を参照してください。

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()); 

私はAndroid上OpenLayersを3を使用したフロアマップのロードのパフォーマンスを改善する方法を知っている可能性があります:私はここのWebViewの活動にハードウェアアクセラレーションを有効にしている

は、WebViewののWebSettingsですWebView?

答えて

1

おそらく、これは多くの情報を持つベクターレイヤーであるため、レンダリングが難しい可能性があります。パフォーマンスを向上させるためには、あなたが.PNG画像で作られたタイル層を試みることができる:this codeの助けを借りて

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

、あなたは.PNGイメージにマップをエクスポートするために、自分自身のためのシンプルなアプリを構築することができます。正しいフォルダ形式(z/x/y)で保存してください。がんばろう!

関連する問題