DOC
|
ナビ アプリや方角を確認するアプリで地図を表示するときに大事なことは何でしょうか? 地図上に現在位置が表示されていること、そして、、、 そうです!自分の向いている向きに地図が表示されていることです。 無償で利用可能な ArcGIS の地図アプリ開発キット、ArcGIS Runtime SDK for Android ではとても簡単に自分(端末)の向きに合わせた地図の回転を実装できますよ。 現在位置表示と端末の向きに応じた地図の回転 地図を表示するビューである MapView にデバイスの現在位置を表示するには LocationDisplayManager クラスを使用します。さらに地図の移動や回転を有効にするには、このクラスの setAutoPanMode メソッドへ指定したいモードをパラメーターとして受け渡します。 locationDisplayManager.setAutoPanMode(LocationDisplayManager.AutoPanMode.COMPASS); 指定できるモードは 4 つあります。 モード パラメーター 説明 コンパス モード COMPASS 現在位置が常に中心になるよう地図が表示されます。また端末の向きに合わせて表示されている地図が回転します。 ロケーション モード LOCATION 現在位置が常に中心になるよう地図が表示されます。コンパス モードと異なり、地図の向きは固定です。 ナビゲーション モード NAVIGATION 現在位置が地図の中央ではなく、地図の下部に表示されます。その上部には端末の進行方向の地図が表示されるよう、地図が回転します。(このモードを効果的に機能させるには一定の進行スピードが必要です。車へ搭載するアプリなどで使用するのがおすすめです。) オフ モード OFF 地図が自動で移動・回転することはありません。(他のモードと同様に現在位置は地図上に表示されます。) Esri Japan GitHub では位置情報表示モードを変更するサンプル アプリ(RuntimeSDKSample)を新たに公開しましたので、実際に端末で起動して現在地の表示と地図の移動・回転を試してみてくださいね。 ■関連リンク 米国 Esri 社 Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for Android ESRIジャパン Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for Android ESRIジャパン GitHub: Esri Japan GitHub
... View more
02-14-2016
09:24 PM
|
1
|
0
|
8245
|
DOC
|
Android 地図アプリを作る際、背景に表示する地図を道路地図ではなく衛星画像にしたいと思うことはありませんか?無償で利用可能な ArcGIS の地図アプリ開発キット、ArcGIS Runtime SDK for Android ではとても簡単に背景の地図を変更できますよ。 簡単に背景地図の種類を変更する方法 地図を表示するビューである MapView にオプションとして地図の種類を指定できます。最も簡単な方法は画面レイアウト(XML ファイル)で指定する方法です。 mapoptions.MapType="SATELLITE" MapType で指定している “SATELLITE” が背景の地図の種類です。この方法を利用すれば衛星画像だけでなく、道路地図や地形図、海洋図などさまざまな背景地図へ簡単に変更できます。 用意されている地図の種類(MapType)は以下のとおりです。 MapType 説明 SATELLITE 衛星画像 HYBRID ラベル付き衛星画像 STREETS 道路地図 TOPO 地形図 GRAY キャンバス 主題図が見やすいよう無彩色背景を使用した地図 NATIONAL_GEOGRAPHIC ナショナル ジオグラフィック 地理学的に情報豊かで個性的な地図 OCEANS 海洋図 OSM オープン ストリート マップ MapOptions では他にも ZoomLevel(ズームレベル)や center(地図の中心)を指定できるので便利ですね。 動的な背景地図の変更 では、動的に背景の地図を変えるのはどうすればいいでしょうか?今度は画面レイアウトではなく Java で実装していきます。 動的に背景の地図を変更したい場合には、MapView の setMapOptions メソッドを使用しましょう。 MapOptions mapoptionSatellite = new MapOptions(MapOptions.MapType.SATELLITE);
mMapView.setMapOptions(mapoptionSatellite); Esri Japan GitHub ではこの動的に背景地図を変更するサンプル アプリ(RuntimeSDKSample)を新たに公開しました。日本語でコメントを入れてありますので参考にしてみてくださいね。 ■関連リンク 米国 Esri 社 Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for Android ESRIジャパン Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for Android ESRIジャパン GitHub: Esri Japan GitHub
... View more
02-14-2016
06:13 PM
|
1
|
0
|
3929
|
DOC
|
異なる表現の地図、異なる時間・状況の地図などをひとつの画面上で同時に見比べたいということはありませんか? たとえば上図の ArcGIS Runtime SDK for iOS(開発キット)を使って開発されたカスタマイズ アプリではスライダーをスワイプすることにより、衛星画像と道路地図、2 つの地図の表示範囲をスムーズに、さらにお好きな位置で変更することが可能です。 同一画面上で 2 つの地図を閲覧できることによって、比較がしやすくなり、物事の前後の変化などもはっきりとわかるようになります。例えば震災の前後で地形がどのように変わったか、どのくらいの範囲に被害が及んだかなど、このような地図アプリがあれば簡単に比較できますね。 本機能は道路地図を表示するアプリに衛星画像を表示するための UIView を追加し、UISlider をスワイプした位置にあわせて衛星画像(UIView)のサイズを変更することで実現しています。詳しくはどなたでもダウンロード可能なサンプル アプリにてご確認ください。 地図の表示は ArcGIS の技術で、画面表示の操作は iOS 標準技術で、このようにそれらを組み合わせて地図の高度な可視化を行えるのも ArcGIS Runtime アプリの大きな特長のひとつです。iOS の開発経験者の方であれば簡単に地図アプリを作成できますので皆さまもぜひお試しください。無償で利用可能な ArcGIS Runtime SDK について詳細は「スマートフォン・タブレットで地図アプリを開発しよう ~おすすめの開発キット紹介~」をご覧ください。 ■関連リンク ESRIジャパン Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for iOS ESRIジャパン GitHub: Esri Japan GitHub
... View more
12-24-2015
05:25 PM
|
0
|
0
|
2284
|
DOC
|
iOS や Android 向けに地図アプリ開発を行いたいとお考えになったとき、皆さまはどのような基準で開発キット(API)を選定しますか? 無償で開発・評価ができる、地図が見やすい、利用できるデータが揃っている・・・ 今回はこのような条件を備えたおすすめの地図アプリ開発キットをご紹介します。 その前に、皆さまは「GIS」という言葉をご存知ですか? GIS とは「Geographic Information System:地理情報システム」の略で、位置に関連づけられたさまざまな情報を、作成、加工、管理、分析、可視化、共有するための情報技術(IT:Information Technology)のことを指します。お気づきかもしれませんが、地図アプリ開発を行おうとしている皆さまはすでに GIS の世界に足を踏み入れているのです。 この GIS の世界で多くの方から知られている製品のひとつが「ArcGIS(アークジーアイエス)」*1 です。 ArcGIS は地理情報を作成、分析、可視化するためのデスクトップ製品、地理情報の共有を行うサーバー製品、クラウド環境で地理情報の作成から共有まで行うクラウドサービス等々、さまざまな製品を提供しています。 その ArcGIS 製品群の中に、iOS や Android 向けの地図アプリ開発を行うための開発キットも含まれています。 ArcGIS の開発キットを利用すれば、単純な地図表示だけでなく、情報を最適に可視化したり、地理情報からさまざまな分析を行ったりと、一歩先を行く地図アプリを実装可能です。 ArcGIS の開発キットを利用したアプリの開発・評価は無償です。背景の地図データや主題に使用するデータも、ArcGIS のクラウドサービスで公開されているものの中から選んで使用することができます。とにかく地図アプリを作ってみたい、どんなことができるのか知りたい、という方におすすめの製品です。 もちろん、実際に作成したアプリを気に入っていただければ、それを配布することも可能です。アプリを無償で配布できる条件もあり、たとえば個人開発者が非営利目的でアプリを公開する場合、つまり誰でもダウンロード可能な無償のアプリである場合などが該当します。無償で配布できる条件に該当しない場合でも、月額 $20~ のライセンスを保有いただくだけで配布可能になり、個人開発者の方でも敷居の低い金額から利用を開始できます *2。 開発キットについての詳しい内容は ESRIジャパン製品ページ(iOS 用開発キット:ArcGIS Runtime SDK for iOS/Android 用開発キット:ArcGIS Runtime SDK for Android)をご参照ください。開発をスタートするにあたって、必要な準備や、地図を表示する最も基本的なアプリの作成方法を紹介しているスタートアップ ガイドなどが用意されています。 *1 ArcGIS は米国 Esri 社が提供する GIS 製品の総称(商標名)です。 *2 詳しいライセンスについては ESRIジャパン製品ページの「ライセンス(iOS/Android)」をご参照ください。 ■関連リンク 米国 Esri 社 Web サイト: ArcGIS for Developers ESRIジャパン Web サイト: ArcGIS for Developers ArcGIS Runtime SDK for iOS ArcGIS Runtime SDK for Android ESRIジャパン GitHub: Esri Japan GitHub
... View more
10-26-2015
06:37 PM
|
1
|
0
|
6772
|
DOC
|
Android アプリの地図上で、フィーチャ(ポイントなど)が選択しにくいと感じたことはありますか? スマートフォンやタブレットを操作するとき、画面と視点との距離や角度は人によって異なります。また場面によって、机や鞄などに固定した状態で操作する、動きながら操作する、親指で操作する、人差し指で操作するといった様々な操作スタイルがあります。このような様々な要因によって地図上のフィーチャが選択しにくいと感じることがあるかもしれません。 ArcGIS Runtime SDK を用いて Android 地図アプリを開発する場合には、この問題の解決を手助けする機能があります。今回はその方法をご紹介します。 1. 拡大鏡を表示する MapView クラスに実装されている拡大鏡を以下のように有効にします。地図の拡大したい場所をロングタップ(長押し)すると拡大鏡が表示され、自分のタップしている場所が十字マークで示されるため、タップしている位置の目安がわかります。 mapView.setShowMagnifierOnLongPress(true); 2. タップの許容値を拡張する Identify タスク(空間検索)を用いてフィーチャを選択する場合、タップしたポイントを中心として半径 5 ピクセル(デフォルト値)の範囲が許容値となっており、この範囲内が検索されます。この許容値を拡張することにより、選択しにくかったフィーチャを選択しやすくすることができます。 Identify タスクの入力パラメータに以下のように許容値を設定します。単位はピクセルです。 identifyParameters.setTolerance(20); ESRIジャパンが公開するタップの許容値変更アプリでは、許容値の変更に伴い、どの程度フィーチャが選択しやすくなるのかをお試しいただけます。複数の異なる端末で検証していて、最適な許容値を割り出したい場合などにも大変便利なアプリです(お使いの端末の解像度によって、同じ許容値でも検索範囲に微妙な差異が生じます)。Esri Japan GitHub からこのサンプル アプリをダウンロードし、ぜひご活用ください。 ※ここでは Identify タスクで空間検索をする例を示しましたが Query タスクについても検索対象のジオメトリの範囲を広げることで同じように問題の解決を手助けします。 ■関連リンク 米国 Esri 社 Web サイト: Android Sample Code Home API Reference ArcGIS for Developers ESRIジャパン Web サイト: ArcGIS Runtime SDK for Android
... View more
09-07-2015
04:34 AM
|
0
|
0
|
2828
|
DOC
|
iOS のカスタム アプリケーションでタイルのロードに時間がかかる場合に、以下のような黒い背景が見えてしまい、なかなか新しい範囲の地図が表示できない、ということはありませんか? この問題の解決を手助けしてくれるのが AGSTiledLayer クラスに用意された bufferFactor プロパティです。 通常 AGSTiledLayer クラスを利用して地図を表示する際、タイルは端末の画面上で見える範囲だけを取得します。そのためタイルの読み込みに時間がかかる場合、地図の表示範囲外を見ようとしてスワイプすると、黒い背景が見えてしまうことがあります。 このプロパティを設定すると、端末の画面上で見える範囲だけでなく、見えない範囲(画面上見える範囲の周辺)もあらかじめ取得できるようになります。 設定値は実際に端末の画面上で見える範囲を「1.0」として設定します。例えばこのプロパティに「1.2」と設定した場合、見えない範囲のタイル 20% 分を含めた 120% 分のタイルを取得します。今画面に表示されている範囲から、画面に表示されていない範囲を見ようとスワイプしたときに、すでにタイルが取得できているので黒い背景が見えにくくなり、範囲外の地図がスムーズに表示できます。 ただし bufferFactor の設定値をむやみに大きく設定することは推奨されません。取得するタイルが多くなるにつれてメモリの消費量も多くなるため、パフォーマンスの低下を招く恐れがあります。開発中のアプリでパフォーマンスのテストを行い、最適な設定値を探してユーザー エクスペリエンスを向上しましょう。 ※「1.0」以上「2.0」以下が有効な設定範囲のため、範囲外の値が設定された場合、この設定値は無視されます。 ■関連リンク 米国 Esri Web ページ : ArcGIS for Developers -ArcGIS Runtime SDK for iOS- ESRI ジャパン Web ページ : ArcGIS Runtime SDK for iOS
... View more
09-07-2015
04:21 AM
|
0
|
0
|
3071
|
DOC
|
Android Studio は Android の公式な統合開発環境として 2014 年 12 月にリリースされました。ArcGIS Runtime SDK for Android でもバージョン10.2.5 から Android Studio を正式な開発環境としてサポートしています。 ここではサンプル コードに含まれる HelloWorld を例に、以前の開発環境である Eclipse で作成したプロジェクトを Android Studio へ移行する手順をご紹介します。 Eclipse project を Android Studio にインポート Android Studio を起動し、全てのプロジェクトを閉じます。[Welcome to Android Studio] というウィンドウが表示されます。 [Import project(Eclipse ADT, Gradle, etc.)] をクリックします。 Eclipse ADT project の場所を選択して [OK] をクリックします。 インポート先のディレクトリを確認して [Next] をクリックします。 いくつか選択されているオプションがありますが、全て選択した状態で [Finish] をクリックします。 インポートが終了したら app/src/main/jniLibs にコピーされた ArcGIS のライブラリを削除します。 ArcGIS Maven リポジトリの追加 プロジェクト レベルの build.gradle ファイルを開き allprojects 内の repositories に以下の ArcGIS Maven リポジトリを追加します。 maven {
url 'http://dl.bintray.com/esri/arcgis'
} build.gradle ファイルは以下のようになります。 buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'http://dl.bintray.com/esri/arcgis'
}
}
} ArcGIS の Android ライブラリプロジェクトの設定 app module の build.gradle ファイルを開き、スクリプトの最後に以下のようにバージョンを指定して追加します。 dependencies {
// ArcGIS Android 10.2.6-2 API
compile 'com.esri.arcgis.android:arcgis-android:10.2.6-2'
} android task の内部に以下の packagingOptions を追加します。 packagingOptions{
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
} build.gradle は以下のようになります。 apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.esri.arcgis.android.samples.helloworld"
minSdkVersion 15
targetSdkVersion 20
}
packagingOptions{
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
// ArcGIS Android 10.2.6-2 API
compile 'com.esri.arcgis.android:arcgis-android:10.2.6-2'
} Android Manifest の更新 AndroidManifest.xml ファイルを開きます。 <uses-sdk>エレメントを削除します。 <manifest>エレメントから android:versionCode および android:versionName パラメータを削除します。 AndroidManifest.xml ファイルは以下のようになります。 <?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.esri.arcgis.android.samples.helloworld">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:allowBackup="true" >
<activity
android:name=".HelloWorld"
android:configChanges="orientation"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest> 右上の [Sync Now] をクリックして移行作業は終了です。
... View more
07-22-2015
03:13 AM
|
0
|
0
|
7666
|
DOC
|
米国 Esri 社が提供する地図の回転を実装したサンプルでは画面のマルチ タッチ操作で地図を回転させることができます。 一方の指を基点にもう一方の指を回転させると、それに合わせて任意の角度に地図が回転でき非常に便利です。 しかし一方で、指定した角度に地図を回転したいというご要望もよく耳にします。 今回ご紹介するのはオプション メニューを用いて地図の回転角度をシンプルに切り替えるよう実装した例(コードは抜粋)です。 @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id) {
case R.id.action_0:
// 回転角度 0°(初期表示)を設定
mMapView.setRotationAngle(0);
return true;
case R.id.action_90:
// 回転角度 90° を設定
mMapView.setRotationAngle(90);
return true;
case R.id.action_180:
// 回転角度 180° を設定
mMapView.setRotationAngle(180);
return true;
case R.id.action_270:
// 回転角度 270° を設定
mMapView.setRotationAngle(270);
return true;
}
return super.onOptionsItemSelected(item);
} このように地図の表示や処理結果を表示する MapView クラスの setRotationAngle メソッドに指定したい角度を受け渡すだけで簡単に実装可能です。 ここで紹介した角度を指定した地図の回転サンプル アプリケーションのソースコードは ESRIジャパン公式 GitHub アカウントにて公開しています。 ■関連リンク 米国 Esri 社 Web サイト: Android Sample Code Home API Reference ESRIジャパン Web サイト: ArcGIS Runtime SDK for Android
... View more
07-21-2015
01:02 AM
|
0
|
0
|
2073
|
Title | Kudos | Posted |
---|---|---|
1 | 02-14-2016 09:24 PM | |
1 | 02-14-2016 06:13 PM | |
1 | 10-26-2015 06:37 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|