『Google Maps SDK for iOS』と標準MapKitの違いまとめ!



標準のMapKitではなく、『Google Maps SDK for iOS』を使用したい時に
MapKitの機能と比較しながらだと、移行しやすいかと考え
記事にまとめました。

日本語の情報はまだ少なく、開発時に苦労するので
今回の記事は中々重宝するのでは無いでしょうか?

対象バージョンは、『Google Maps SDK for iOS(Version 1.3.1 (June 2013))』です。
私がプロジェクトをMapKitから『Google Maps SDK for iOS』へ移行した際に
置き換えた機能ですので、『違い』を全て網羅しているわけではありませんが、
この先も違いが新たに見つかり次第、記事を更新したいと思います。

『Google Maps SDK for iOS』のインストール方法は他のブログで紹介されていますので、
今回は割愛して、ソースコードの違いに焦点を絞り、解説したいと思います。

  1. SDKの読み込みと、置き換えられるクラス
  2. リバースジオコーダーの実装方法の違い
  3. 地図に刺すピン(アノテーション)の扱い方の違い
  4. 地図の移動、カメラワーク構築方法の違い
  5. その他の違い
『『Google Maps SDK for iOS』と標準MapKitの違いまとめ!』を続きを読む »

【決定版】MKMapView上でのタップイベントの取得方法!!



ソースコード付きで中々思い通りに行かない地図上のタップイベントについて解決策を
解説します。

MapKitのMKMapView上で地図操作を邪魔せずにタッチイベントを取得するのは、
想像するよりもやっかいです。

通常ですと、タップの検知はtouchesBegan()等で行いますが、
MKMapViewでは既にタップのイベントが沢山用意されていますので、
単純にオーバーライド等で書き換えたとしても、マップの移動や拡大縮小など
本来MKMapViewが持っているタッチ操作を邪魔してしまいます。


また、Viewを別に用意してタップをそこで拾ったりを考えますが、
タップを拾った時点でイベントの通知がストップしてしまいますので、
中々上手く調整する事が出来ません。

そこで、UIViewのhittestを使用します。

今回の解説では、地図の操作を邪魔せずにタッチのイベントを取得し、
指定のメソッドを座標情報と共に起動する事を目的とします。

汎用的な作りにしてありますので、是非ともお使い下さい。

  1. タッチを拾う為にUIViewを拡張しよう!
  2. タップを検知用ViewをMKMapViewに適用させる
『【決定版】MKMapView上でのタップイベントの取得方法!!』を続きを読む »

iPhone地図アプリで使える緯度・経度を元に、二点間の距離を取得する方法!!



ソースコード付きで緯度・経度を元にした二点間の距離計算方法を解説します。


MapKit等の地図アプリを使用していると、現在位置から目的地までの距離や、
ある場所から、ある場所までの距離を表示したい時があります。

他にも、地図に立てたピンを全て表示させたい場合の縮尺計算も、
全てのピンの中心位置となる緯度経度を計算し、
そこから一番離れているピンまでの距離を計算すれば、
全てのピンを表示出来る縮尺を求める事が出来ます。


そんな、様々なシーンで使う事となる距離の計算方法を
Objective-C流にソースコード付きで解説したいと思います。


  1. 緯度・経度を元に二点間の距離(m)を算出する方法
  2. ヒュベニ距離計算式で求める二点間の距離(m)
『iPhone地図アプリで使える緯度・経度を元に、二点間の距離を取得する方法!!』を続きを読む »

サンプルコードで見るMapKitのGoogleロゴの位置を変更する方法!!



地図アプリの開発で問題になるポイントをコード付きで解説します。

iPhone/iPad/iPodアプリ開発において、地図と連動させるものを作ろうと思ったら
まず浮かび上がるのがMapKitでしょう。

これは、GoogleMapのSDKであり、GPS機能と連動させて現在位置を表示したり、
マップにピンを立てて目的地を地図付きで説明したりと、
地図情報を使ったアプリではとても重宝します。
(GPSを使った位置情報の取得は別のフレームワークを使用します。)

とても高性能で、とてもよく使うMapKitGoogleMapですが、
使い方には注意する事があります。

それは、マップ上に表示されるGoogleのロゴです。

もし、仮にMapKitを使用しているのにGoogleロゴが見えない状態になる場合は、
アップルのアプリ申請を通す事は出来ません。

地図のサイズを動的に変更させたり、カーナビや道案内等で地図を回転させたりすると、
結構Googleロゴが隠れてしまう事があります。

しかし、そんな状態で申請しても、アップルは容赦なくリジェクトしてきます。
MapKitを使う限り、Googleロゴは必ず見えるようにしておく必要があります。


今回は、そんなGoogleロゴの位置を変更する方法です。
Googleロゴのインスタンスを取得する方法でもあるので、
位置を動的に変更する事も可能です。

  1. Googleロゴのインスタンスを取得しよう
  2. 実際にロゴを取得し、位置を変更してみよう
『サンプルコードで見るMapKitのGoogleロゴの位置を変更する方法!!』を続きを読む »

人気の投稿

Category

Algorithm (2) Android (8) ASP/aspx (1) Blogger (2) C/C++ (1) Chrome (5) CSS (9) Firefox (4) Fortran (1) Google (9) GoogleMap (2) HTML (12) IE (3) Information (4) iOS (2) iPhone/iPad/iPod (2) Java (6) JavaScript (16) jQuery (9) JSP (1) LifeRecipe (5) Linux (2) Macintosh (2) MapKit (4) Marketing (7) MySQL (3) NAMAZU (2) Objective-C (7) Other (7) Perl (1) PHP (9) Python (1) RSS/Atom (2) Ruby (1) Safari (2) SEO (11) Smarty (2) SQL (2) Tex (1) Three.js (1) Twitter (1) TwitterLog (313) UIKit (5) Unix (1) VBA/VBS (1) Windows (5) WordPress (3) Writing (5) XAMPP (1) XML (1) Yahoo (2) ZendFramework2 (14)