2012-01-13 21 views
17

Google Maps JavaScript API v3を使用してモバイルアプリケーションを構築しようとしています。機能的にはうまくいっていますが、ミドルウェアのAndroid搭載端末(Samsung Galaxy 3をテスト用に使用)ではパフォーマンスが実際には低迷しています。 また、公式http://maps.google.comのパフォーマンスを確認し、同じ結果があり、first example codeも使用しました。どのモバイル固有のステップがありますか(私のコードを見てください)、Javascript APIのパフォーマンスはこのレベルに制限されています。この場合、ネイティブアプリケーションを構築することはできません。Google Maps Javascript APIモバイルのパフォーマンスの問題

ありがとうございました!ここで

は、リンク先のページのコードです:official documentation 1として

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100% } 
    </style> 
    <script type="text/javascript" 
     src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE"> 
    </script> 
    <script type="text/javascript"> 
     function initialize() { 
     var myOptions = { 
      center: new google.maps.LatLng(-34.397, 150.644), 
      zoom: 8, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), 
      myOptions); 
     } 
    </script> 
    </head> 
    <body onload="initialize()"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
    </body> 
</html> 
+0

この回答をお待ちしています。 – the0ther

+0

スクリプトと下部を入れてみましたか? –

+0

私はそれを使ってネイティブのアプリケーションと同じくらい良いパフォーマンスを持つことはできないと思いますが、あなたにそれを証明することはできません。それは答えよりも意見に似ています。それと幸運! :) – Leaudro

答えて

8

、あなたのコードは正しいです。マップは最適化されています。

私はお勧め:

  1. は、ページの最後にhttp://maps.googleapis.com/maps/api/js?sensor=false
  2. ロードスクリプトにスクリプトのURLを変更してください。

例:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100%; width: 100%; } 
    </style> 
    </head> 
    <body> 
    <div id="map_canvas"></div> 
    <script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
    <script> 
     function initialize() { 
     var myOptions = { 
      center: new google.maps.LatLng(-34.397, 150.644), 
      zoom: 8, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), 
      myOptions); 
     } 
     google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 
    </body> 
</html> 

http://fiddle.jshell.net/tomasdev/8FhYz/show/light/で外にデモを試してみてください - 私はあなたのデバイスに関する疑問に思います。正式なデモが遅い場合、私はかなり良い解決策はないと思います。

0

Googleマップのパフォーマンスは、ページ全体の構造がどれほどうまくいくかによって大きく異なります。

最大のパフォーマンスヒットは、通常、ページの再描画/レンダリングサイクルから発生します。これは、タイルのロード/アンロードによって発生します。

マップの配置方法と使い方によっては、位置:固定を使用してマップ要素を配置し、ドキュメントフローから取り除くと便利です。ポジション:アブソリュートも役立ちますが、「固定」ほどではありません。