カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

GoogleMap 表示範囲内のみマーカー表示

GoogleMap上にたくさんのマーカーを描画したい場合、マーカーが多過ぎて処理が重くなるのを防ぎたいので、
予め地図の表示範囲内のみ、マーカーを描画するようにしてみたいと思います。

まずはイベントを受け取り、処理できるようデリゲート[GMSMapViewDelegate]を追加します。

class SampleViewController: UIViewController, GMSMapViewDelegate {

GoogleMapオブジェクトにデリゲートを設定します。

googleMap.delegate = self

マーカーを追加する際、後から表示/非表示を変更したいので、配列のマーカーオブジェクトを宣言しておきます。

var markers : [GMSMarker] = []

マーカーを追加したときに先ほどの配列に追加します。

let marker: ...
markers.append(marker)

続きを読む…»

4,281 views

Macでのスクリーンショット

普段はWindowsを使っているので、Macでのスクリーンショットを撮る方法の覚書です。

画面全体のスクリーンショットを撮る
shift + command + 3

画面の一部分を選択してスクリーンショット
shift + command + 4
カーソルが十字になるので、保存したい範囲を選択
取り消しはesc

ウィンドウのスクリーンショットを撮る
shift + command + 4
その後、スペース
保存したいウィンドウをクリック

シャドウ無しのスクリーンショットが良ければ、
optionを押しながらウィンドウをクリック

1,116 views

GoogleMapに現在地を表示

Info.plistに位置情報の利用を追加します。
GoogleMapに現在地を表示するだけなら、CoreLocationは必要ないようです。

Privacy - Location When In Use Usage Description

Valueには「現在地の情報を利用します」等としておきます。

GoogleMapの表示方法については[iOSアプリでGoogleMapを使う]をご覧ください。

位置情報を利用して現在地を表示する

googleMap.isMyLocationEnabled = true

現在地ボタンを表示する

googleMap.settings.myLocationButton = true

Xcode: 8.2.1
Swift: 3.1
OS: Sierra 10.12

3,188 views

Xcode ビルド警告 対処法

iOSアプリの開発で以下のような警告が出ることがあります。

All interface orientations must be supported unless the app requires full screen.

【対処法】
プロジェクトのGeneralにて、[Deployment Info]-[Status Bar Style]-[Requires full screen]にチェックを入れる

Xcode: 8.2.1
OS: Sierra 10.12

1,139 views

指定したディレクトリ内のファイル一覧を取得する

読み込むファイル名の中には「.」と「..」が含まれるので除外します。

opendirを使う

$rdir = "[読み込むディレクトリ]";

$dh = opendir($rdir);

while (false !== ($filename = readdir($dh))) {

    // ドットで始まるファイルとディレクトリを除外
    if(!preg_match("/^\./", $filename) && !is_dir($filename)) {

        echo $filename."<br>\n";

    }

}

closedir($dh);

scandirを使う

$rdir = "[読み込むディレクトリ]";

$F = scandir($rdir);

foreach($F as $filename) {

    // ドットで始まるファイルとディレクトリを除外
    if(!preg_match("/^\./", $filename) && !is_dir($filename)) {

        echo $filename."<br>\n";

    }

}

globを使う

この場合、「.」「..」は含まれません。

$rdir = "[読み込むディレクトリ]";

foreach (glob($rdir."/*") as $filename) {
    echo $filename."<br>\n";
}
2,738 views