目次
めに... 2
ー ッ い ... 2
ArcGIS Runtime SDK for iOS ... 2
ArcGIS Runtime SDK for iOS 開発環境 ... 2
バ ン ー ョン 開発 ... 4
ン ー ... 4
Xcode 構成 ... 13
ArcGIS ー ワー 追加 ... 13
関連 追加... 15
修正 ... 16
ソー ン 追加 ... 17
ッ ン ー ン 開発 ... 19
地図 表示 ... 19
主題図 追加 ... 26
GPS 位置 表示 ... 28
ッ ー ... 31
ー ン 公開 い ... 32
ArcGIS Resources ... 33
Concepts ... 34
... 37
AGSMapView 追加 ... 37
種類 ... 38
ッ ー ... 40
ッ ー REST ン ン ... 41
ー ... 43
ー REST ン ン ... 44
ArcGIS Runtime SDK for iOS
めに
こ
ー
につい
ー ッ 初 ArcGIS Runtime SDK for iOS 使用
ッ ン ー ン 構築 開発者 方 最 基本的 開
発手順 紹介 本書 読 頂く ArcGIS Runtime SDK for
iOS 入手方法 び 使用 ッ ン
ー ン開発 基礎 理解
ArcGIS Runtime SDK for iOS
ArcGIS Runtime SDK for iOS iOS 特有 操作性や機能 ArcGIS for Server や Bing Maps ン ン GIS ソー 統合 ー
ン 開発 提供 API
ArcGIS Runtime SDK for iOS 詳細 下記 参照く い
ArcGIS Runtime SDK for iOS:
http://www.esrij.com/products/arcgis/mobile/arcgis-for-smartphones/arc
ArcGIS Runtime SDK for iOS 開発環境
本 以下 環境 ArcGIS Runtime SDK for iOS 用い
ッ ン ー ン 開発手順 紹介 本 手順 実行
前 以下 環境 使用 ン 適切 セッ ッ い 必要 あ
開発環境
OS:Mac OS X 10.6.2 以降
開発 ッ :iOS SDK 4 以降
ン 環境:iOS 4 以降 iPhone, iPod touch, iPad
ArcGIS Runtime SDK for iOS ー 最新 動作環境 下
記 参照く い
ArcGIS Runtime SDK for iOS 動作環境:
http://www.esrij.com/products/arcgis/mobile/arcgis-for-smartphones/arc
バ
ン
ー ョン 開発
ン
ー
ArcGIS Runtime SDK for iOS 用い ッ ン ー ン
開発 入手 必要 あ 以下 手順 従い
ArcGIS Resources ン ー く い
※ 以下 手順 ー ン 2.3
1. ArcGIS Resources ArcGIS Runtime SDK for iOS ー セ
ArcGIS Resource Center:
2. ー 右 [Get the latest SDK ( ー ン)] ッ
3. [Esri Downloads] ー 移動 ン ー ー ン
4. Esri ー ン 使用 ン ー
ン 持 い場合 [Create An Account] ッ ン
作成 く い
6. [Esri Licence Agreement] ー 開 セン 使用許諾条項
7. ン ー 開始
8. ン ー “AGSRuntimeSDKiOSv< ー ン>.pkgナ
ッ ン ー 開始
9. [AGSRuntimeSDKiOSv< ー ン> ン ー ] ッ
11. 使用許諾契約 確認 [続 ] ッ
13. ン ー 先 選択 [続 ] ッ
15. ン ー 開始
16. ン ー 終了 [閉 ] ッ ン ー 作業 完
Xcode
構成
Xcode iOS ー ン 開発 標準 統合開発環境
Xcode iOS SDK Mac App Store ン ー
ArcGIS Runtime SDK for iOS 使用 ッ ン ー
ン開発 Xcode 組 込 ン ー 使用
開発 ー 必要 設定方法 説
明
ArcGIS ー ワー 追加
1. ArcGIS ー ワー 追加 左側 [Project Navigator] ー [TARGETS] ー [Build Settings]
2. 検索 ー "Framework Search Paths" 入力 [Framework Search Paths] セ ン 検索
3. [TARGETS] ッ 表示 [+]
関連 る 追加
ArcGIS 依存 ー ワー 追加
1. [Build Phases] 選択 [Link Binary with Libraries] セ ン [+] 選択
2. 以下 項目 追加
CoreGraphics.framework
CoreLocation.framework
Foundation.framework
QuartzCore.framework
CoreText.framework (v1.8以降)
libstdc++.dylib (v1.8以降)
MediaPlayer.framework (v2.0以降)
MobileCoreServices.framework (v2.0以降)
libz.dylib (v2.1以降)
Security.framework (v2.1以降)
修正
定義 Objective-C 正 く ー 確
認 追加 必要 あ
2. [TARGETS] ッ 表示 [+]
ッ “-all_loadナ “-ObjCナ ナ-frameworkナ “ArcGISナ 追加
ソー バン 追加
ソー ArcGIS.bundle 統合 い
1. Xcode ー ン [File] ー [Add Files to <
名>...] ッ
2. ${HOME}/Library/SDKs/ArcGIS/ArcGIS.framework/Versions/Curren t/Resources/ArcGIS.bundle ン ー 先 場合 選択
[Add] ッ
※ Mac OS X Lion ${HOME}/Library 非表示 い
ー 以下 ン 入力 表示
※ ArcGIS Runtime SDK for iOS ー ン 2.3.2 iOS 6 対応 い ArcGIS
armv7s 含 い い 取 除く必要 あ
[Valid Architectures] セ ン armv7s 削除 く い
バ
ン
ー ョン 開発
以下 手順 Xcode 4 用い ArcGIS Runtime SDK for iOS 使用
ッ ン ー ン 開発方法 一例 紹介
地図 表示
1. Xcode ー ン ー [File] > [New] > [New Project...]
Single View Application ン ー 選択 [Next] ッ
2. Product Name Class Prefix “sampleナ 入力 Device Family
“iPhoneナ 選択 Use Storyboard ッ 外 [Next]
ッ
4. Project Navigator sampleViewController.xib 選択
次 地図 表示 UIView 追加 Object
Library 開 UIView View 上 ッ & ッ 追
5. 追加 UIView 選択 Identity Inspector 開
[Custome Class] セ ン Class ナづにSMaァViらエナ 入力
6. Project Navigator sampleViewController.h 選択 下記
う ー 記述 ArcGIS.h ッ 変数
ッ 設定 行い
#import <UIKit/UIKit.h>
#import <ArcGIS/ArcGIS.h>
@interface sampleViewController : UIViewController {
AGSMapView *_mapView;
}
@property (nonatomic, retain) IBOutlet AGSMapView *mapView;
7. Project Navigator sampleViewController.xib 選択
次 Placeholder Fileグs Owner 選択 Connections Inspector 開
8. mapView ッ 手順 4 追加 AGSMapView
関連 Outlets “mapViewナ 右側 あ [○] ッ
9. Project Navigator sampleViewController.m 選択 下記
う ー 記述 変数 設定 viewDidLoad ソッ 内
ArcGIS 追加 行い
#import "sampleViewController.h"
@implementation sampleViewController
@synthesize mapView = _mapView;
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
AGSTiledMapServiceLayer *tiledLayer =
[AGSTiledMapServiceLayer
tiledMapServiceLayerWithURL:[NSURL
URLWithString:@"http://server.arcgisonline.com/ArcGIS/rest/servi
[self.mapView addMapLayer:tiledLayer withName:@"Tiled Layer"];
}
上記 ー AGSMapView 背景地図 ArcGISTiledMapServiceLayer 追加 い
ArcGISTiledMapServiceLayer URL ー ソー Esri 社 い ArcGIS Online 世界 道路地図 ー
指定 い
10. Xcode ー ン 上部 [Run] ッ iPhone
ー ッ
11. ッ 実行 開始 iPhone ー 上 ッ ン
12. ッ ン ー ン 正常 実行 い 確認
ッ 停止
主題図 追加
以下 ッ ン ー ン上 地図 主題図 表示 手
順 紹介
1. 下記 う viewDidLoad ソッ 内 主題図 追加 ー 追加
AGSDynamicMapServiceLayer *dynamicLayer =
[AGSDynamicMapServiceLayer
dynamicMapServiceLayerWithURL:[NSURL
URLWithString:@"http://sampleserver1.arcgisonline.com/ArcGIS/res
dynamicLayer.visibleLayers = [NSArray
arrayWithObjects:[NSNumber numberWithInt:5], nil];
[self.mapView addMapLayer:dynamicLayer withName:@"Dynamic
Layer"];
上記 ー 地図 表示 ッ 追加
ArcGISTiledMapServiceLayer 上 ArcGISDynamicMapServiceLayer
追加 い ArcGISDynamicMapServiceLayer
URL ー ソー Esri 社 い ArcGIS
Online ー 追加 い ー 複数 含
い ArcGISDynamicMapServiceLayer visibleLayers
特定 米国 州 ン 表示 い
2. 地図 初期表示範囲 変更 下記 う 初期表示範囲 設定 ー
追加
AGSEnvelope *envelope = [AGSEnvelope
envelopeWithXmin:-15000000 ymin:200000 xmax:-7000000 ymax:8000000
spatialReference:self.mapView.spatialReference];
3. ッ 行い 背景地図 上 米国 州 黒い線 象 ン主題図
表示 確認
手順 ArcGISDynamicMapServiceLayer 追加 背景
重 合わ 表示 追加 各種 詳細 い
種類 参照 く い
GPS 位置 表示
1. 地図 読 込 ン ン ン ー 実装
宣言 sampleViewController.h 下記 う ー
追加
@interface sampleViewController : UIViewController
<AGSMapViewLayerDelegate> {
AGSMapView *_mapView;
}
AGSMapViewLayerDelegate 地図 追加 い
関連 ン 処理 ソッ 定義 い
2. sampleViewController.m 開 viewDidLoad ソッ 内 初期表示範囲
設定 ー 前 下記 う ー 追加 AGSMapView
ー 設定
[super viewDidLoad];
self.mapView.layerDelegate = self;
3. sampleViewController.m GPS 位置 地図上 表示 ー
-(void) mapViewDidLoad:(AGSMapView*)mapView {
self.mapView.gps.autoPanMode = AGSGPSAutoPanModeDefault ;
[self.mapView.gps start];
}
上記 ー 地図 読 込 GPS 位置 地図上 表示
AGSGPS AutoPanMode いく ー 利用
徒歩や車 移動 際 GPS 最適 ー 提供
4. ッ 行う 現在地 青丸 表示 ー 常 固
定 位置 返 位置情報 利用 許可 ッセー 表示
以上 ン ー ン 開発 終了 高度 ー
ン 開発 関 参考 ン や ン 詳細 い 次 ッ
参照く い
ー
以下 ッ ン ー ン 使用 地図 ー
ン い 紹介
ArcGIS Runtime SDK for iOS AGSMapView iOS
上 以下 地図操作 ー い
地図操作
ン ン 画面 2 箇所 別々 指 触 そ 間隔
狭 地図 縮小
ン 画面 2 箇所 別々 指 触 そ 間隔
広 地図 拡大
画面 1 箇所 やく 2 回触
地図 一定 倍率 拡大
2本指 画面 2 本 指 やく 2 回触
地図 一定 倍率 縮小
ワ 画面 触 触 指 動
2本指 ※ 画面 2 本指 触 触 指 動
地図 回転
※ AGSMapView allowRotationByPinching 有効 利用可能
ー ョン 公開につい
ArcGIS Runtime SDK for iOS 使用 開発 ッ ン
ー ン 公開 場合 Esri 社 申請 必要 あ
ー ン 公開 関 詳細 い ー ン公開
次
本 ー ッ ArcGIS API for iOS 用い ッ ン
ー ン 開発 最 基本的 開発手順 い 紹介
今後 高度 ー ン 開発 ArcGIS Resources 参照く い ArcGIS Resources SDK 利用 開発
必要 参考 ン や ン 集約 い
ArcGIS Resources
Concepts
http://resources.arcgis.com/en/help/runtime-ios-sdk/concepts/index.htm
l#//00pw00000003000000
SDK 概要 ッ 追加や ArcGIS for Server ー 利用方法 い
Reference
http://resources.arcgis.com/en/help/runtime-ios-sdk/apiref/index.htm
SDK ン SDK 含 各種 ソッ
Samples
http://resources.arcgis.com/en/help/runtime-ios-sdk/samples/index.htm
Esri 社 開発者や全世界 開発者 方 作成 ッ ン
ー ン 紹介 ー ー ン ン ー
AGSMapView
オ
へ
追加
ArcGIS Runtime SDK for iOS 用い 作成 ッ ン
ー ン 地図 表示 AGSMapView 1 以
上追加 い AGSMapView ー ン上 表示
地図 範囲 縮尺 座標系 情報 保持 1 以上 顧
客分布図 主題図や道路地図 背景地図 追加 最
初 追加 下記 ー 例 ナLayerごナ 最下層 表示
Layer0 = [AGSTiledMapServiceLayer tiledMapServiceLayerWithURL: url];
[self.mapView addMapLayer:Layer0 withName:@"Layer0"];
Layer1 = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL:url];
[self.mapView addMapLayer:Layer1 withName:@"Layer1"];
Layer2 = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL:url];
[self.mapView addMapLayer:Layer2 withName:@"Layer2"];
Layer2 例:顧客分布図
Layer1 例:人口分布図
Layer0 例:道路地図
種類
AGSMapView 追加 そ ー ソー 違い
ッ ー ー 2 種類 分
ー ソー 多く GIS ー 提供 ッ ー
ッ ー 自身 ほ 場合 複数 構成 あ
ー 管理者 各 ッ ー 内 う ン や
色 使用 地図上 表示 定義 い ッ ー
定義 従い ー 上 地図画像 生成 ン 配信
ッ ー 内 ー 側 生成 地図画像 ー ソ
ー AGSMapView 表示
GIS サーバ
サー 地図画像 生成
地図画像 配信
サー
mapView
ッ ー あ ー 側 生成 地図画像 ー
ソー 使用 ー 側 定義 ン や色 異 方法 地
図 表現 一方 ー ン
ー ン上 動的 ン や色 設定 ー
ッ ー 構成 複数 1 直接 セ そ
内 地物 座標 び属性情報 取得 ー ン上 動的 描
画 行い
iOS ッ ン ー ン 多く 場合 い ン
情報等 変更 必要 い背景地図 ッ ー 使用 ー
操作 応 表示 対話的 変更 必要 あ 主題図 ー 使
用
GIS サーバ
サー mapView
ー
特定 から
座標 属性情報を取得
ン 側
サー
ッ ー 利用 GIS ー ッ ー REST 形
式 公開 ッ ー REST ー ン
ン セ GIS ー 生成 ッ ー 画像 表
示 ッ ー ArcGIS for Server 公
開 様々 ッ ー や Bing Maps ー 様々 ー 対応
以下 う ッ ー 用意 い
サー :
AGSTiledMapServiceLayer ArcGIS for Server サー を ー ソー
使用 ま
AGSDynamicMapServiceLayer ArcGIS for Server サー を ー ソ
ー 使用 ま
AGSImageServiceLayer ArcGIS for Server ー サー を ー ソー 使
用 ま
AGSBingMapLayer Bing Maps ー ー を ー ソー 使
用 ま
ArcGIS for Server ー ー ソー 使用 ッ ー
ー ソー 指定 URL 属性 ッ
ー REST ン ン 指定 本 ー ッ 紹介
サー REST ン ン
ッ ー 利用 ArcGIS for Server ッ ー
REST ン ン ArcGIS for Server ン ー ー 構成 ArcGIS Services Directory 呼 簡易 Web ー ン
確認 以下 URL Esri 社 公開 い ArcGIS for Server ッ ー REST ン ン 確認
ArcGIS Online ArcGIS Services Directory
http://server.arcgisonline.com/ArcGIS/Rest/Services
Services: セ ン 表示 ー 一覧 使用 い ー
ッ 例え 世界 道路地図 REST ン ン 確認
World_Street_Map ー 詳細 表示 ー REST ン
ン 表示 URL
※ ー ArcGIS for Server 10.1 ArcGIS Services Directory Windows
ー [ ] > [ArcGIS] > [ArcGIS 10.1 for Server] > [Services
ー
前述 通 ー ッ ー 異 ッ
ー 内 1 座標 属性情報 取得 ン 側 動的
描画 行い 以下 世界 道路地図 ッ ー 上 ン
ー 描画 例
ー 使用 上図 う ッ 表現 加え
上 地物 動的 選択 ArcGIS for Server ー 連携 Web
ー REST ン ン
ー ッ ー 同様 ArcGIS for Server
REST ー 利用 ッ ー 異 ー
内 個別 ソー 指定 以下 Esri 社 公開
い ン ー ッ ー 個別 REST ン ン
確認
1. Esri ン ー 接続 [Specialty] ッ
2. Specialty 内 [ESRI_StatesCitiesRivers_USA] ッ ー
3. ESRI_StatesCitiesRivers_USA ッ ー 詳細 表示
ッ ー Cities 都市 Rivers 河川 States 州 3
含 い わ [Cities] ッ
4. Cities 詳細 表示 Cities ー REST ン ン
表示 URL ッ ー 使用
REST ン ン 異 URL 最後 ッ ー 内
5. 以下 例 上記手順 確認 Cities ArcGIS Online 世界
道路地図 上 重 い ー AGSFeatureLayer
URL REST ン ン 指定 い そ 他
AGSFeatureLayer definitionExpression 使用 Cities POP1990 列 値 100000 大 い ー 人口 10
万人以上 表示 言う条件 設定 い
AGSTiledMapServiceLayer *tiledLayer = [AGSTiledMapServiceLayer
tiledMapServiceLayerWithURL:[NSURL
URLWithString:@"http://services.arcgisonline.com/ArcGIS/rest/ser
vices/World_Street_Map/MapServer"]];
[self.mapView addMapLayer:tiledLayer withName:@"Tiled Layer"];
AGSFeatureLayer *featureLayer = [AGSFeatureLayer
featureServiceLayerWithURL:[NSURL
URLWithString:@"http://sampleserver1.arcgisonline.com/ArcGIS/res
t/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0"]
mode: AGSFeatureLayerModeSnapshot];
featureLayer.definitionExpression = @"POP1990 > 100000";
[self.mapView addMapLayer:featureLayer withName:@"Feature
Layer"];
6. AGSFeatureLayer そ 他 ー ー 取得方式
設定 mode 用意 い 詳細 Reference
参照く い
Reference:AGSFeatureLayer
http://resources.arcgis.com/en/help/runtime-ios-sdk/apiref/interfac
そ 他
ッ ー ー ー 他 AGSMapView
追加 以下 う 利用
AGSOpenStreetMapLayer
ー ン ー ッ 表示
ー ン ー ッ 地理情報 自由 共有 目的 誰 自由
AGSSketchGraphicsLayer
い ー 同様 ッ ー
重 合わ 使用 効果的 わ や い
・ 本書 一部 全部 無断 転用 複製 禁
・ 本書 記載 い 社名 商品名 、各社 商標 び登録商標
・ 本書 記載 い 内容 改良 予告 く変更 場合 あ
・ 本書 内容 参考情報 提供 目的 本書 含 情報 そ 使用先 自
己 責任 い 利用 頂く必要 あ
ArcGIS Runtime SDK for iOS ー ッ v2.x 2012年11月 第4版
発行/編集所 ESRI ン株式会社