ダッシュボード ウィンドウと 2 つの追加ウィンドウを含む iOS アプリを Titanium Appcelerator で作成しています。そのうちの 1 つには、ロードに 3 秒ほどかかるマップビューが含まれています。これは、空白の画面を見るには長い時間です。
Appcelerator フォーラムで、ユーザーの位置が一定量変化した場合にのみユーザーの位置を更新する方法を尋ねるこの投稿が投稿されました。これを実装しました。私の現在の実装は次のとおりです。
大きな動きでのみ更新されるように距離フィルターを設定します
Titanium.Geolocation.distanceFilter = 10;
重要でない開始位置 (0,0) でマップビューを作成し、ウィンドウに追加します
var mapview = Titanium.Map.createView({ mapType: Titanium.Map.STANDARD_TYPE, region: {latitude: 0, longitude: 0, latitudeDelta:0.05, longitudeDelta:0.05}, animate:false, regionFit:true, userLocation:false }); win.add(mapview);
ユーザーの場所を取得し、マップビューの場所をそれに設定します
//Should only go once Titanium.Geolocation.getCurrentPosition(function(e) { if (e.error) { alert('Cannot get your current location'); return; } var longitude = e.coords.longitude; var latitude = e.coords.latitude; var altitude = e.coords.altitude; var heading = e.coords.heading; var accuracy = e.coords.accuracy; var speed = e.coords.speed; var timestamp = e.coords.timestamp; var altitudeAccuracy = e.coords.altitudeAccuracy; var current = { latitude : latitude, longitude : longitude, latitudeDelta : .05, longitudeDelta : .05 }; mapview.setLocation(current); mapview.userLocation = true; });
マップの読み込みを速くしたいだけです。ユーザーの位置を特定するのに数秒かかる場合は、問題ありません。しかし、ユーザーに空白の画面を 3 秒間見させるのはひどいことです。これを回避する方法はありますか?
私も設定しました:
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
それが違いを生むなら。
編集:ユーザーの場所を取得している部分をコメントアウトしましたが、マップの読み込みには同じ時間がかかります。問題は、作成する前に map.js ファイルを開いているという事実に関係していると思います。
私の app.js ファイルでは、map.open() を呼び出します。次に、map.js ファイルの先頭で次のようにします。
var win = Ti.UI.currentWindow;
次に、マップを作成して追加します。アーキテクチャを維持しながらマップをプリロードする方法がわかりません。これは可能ですか?