Apple Watchプログラミングの作法 Extensionアプリ/Objective-C対応

位置情報を利用する(CoreLocation/MapKit) - 地図画像の転送量を少なくする

Icon comment count 0
Icon stock count 0

10.7 地図画像の転送量を少なくする

ここまでのプログラムでアノテーションを画面の中心に固定した状態で、周りの地図が動いていくアプリが動きました。しかし地図情報を頻繁に更新しているということはiPhoneとApple Watchの間で常に通信が発生しているということになります。

シミュレータではスムースに動作しているように見えますが、実機のApple Watchで動作させた場合には、地図の更新が遅れ、バッテリーの持ちも悪くなるに違いありません。

Apple Watchでの位置情報と地図情報の利用

そこで、なるべくMapKitからの地図画像の転送を行わないようにプログラムを修正することにします。修正点はcheckPositionだけです。

アノテーションが地図の端に近づいた場合に地図の中心座標を更新する
- (void)checkPosition {
  
  // アノテーションが地図の中心からある程度離れたら表示しなおす
  double latDiff = 
                fabs(mapCenterLocation.latitude  - userLocation.latitude);
  double lonDiff = 
               fabs(mapCenterLocation.longitude - userLocation.longitude);
  if((latDiff > spanValue*0.4)||(lonDiff > spanValue*0.4)) {
    // マップの表示位置、表示範囲を変更
    [self ref

コメント

    コメントはありません