質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

1回答

385閲覧

自作地図アプリにて、マーカー設置後にGoogle Mapの「共有」で自作地図アプリを選択すると、設置したマーカーが消えている

hiropee

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

0クリップ

投稿2018/07/04 13:46

編集2018/07/04 14:40

自作の地図アプリにて、以下の手順を実行すると設置したマーカーが全て消えてしまいます。
<手順>
1.マーカーを設置
2.設置したマーカーをタップし現れたGoogle Mapボタンをタップ
3.(新たにマーカーを設置するために)Google Mapの「共有」又は「場所を共有」で自作の地図アプリを選択

マーカーが消えてしまわないようにとSharedPreferencesを試してみましたが、アプリを終了させてもデータが残ったままになってしまうので失敗でした。
それ以外に良い方法はないかと考えたのですが浮かびませんでした。すみませんがご助力の程よろしくお願いいたします。

manifests

</activity> <activity android:name=".LocationActivity"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.APP_MAPS" /> <data android:mimeType="text/*" /> </intent-filter> </activity>

Javaソース

import icepick.Icepick; import icepick.State; public class LocationActivity extends FragmentActivity implements OnMapReadyCallback { @State int addMk = 0; //設置マーカーカウンター @State String[] sText = new String[ARRAY_MAX]; //マーカーテキスト格納用 private LatLng[] newlocation = new LatLng[ARRAY_MAX]; //設置マーカーの緯度経度格納用 private double[] lat = new double[ARRAY_MAX]; private double[] lng = new double[ARRAY_MAX]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Icepick.restoreInstanceState(this, savedInstanceState); // 復元 //広告クリックして戻るとnewlocationでアプリが落ちるため、newlocationのみicepickから出して従来方式の保存復元に変更 if (savedInstanceState != null) { for (int i = 0; i < addMk; i++) { lat[i] = savedInstanceState.getDouble("Lat" + i); lng[i] = savedInstanceState.getDouble("Lng" + i); } for (int i = 0; i < addMk; i++) { newlocation[i] = new LatLng(lat[i], lng[i]); } } setContentView(R.layout.activity_maps); ~~~省略~~~ } public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Icepick.saveInstanceState(this, outState); // 保存 for (int i = 0; i < addMk; i++) { outState.putDouble("Lat" + i, newlocation[i].latitude); outState.putDouble("Lng" + i, newlocation[i].longitude); } } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; //設定の復元 for (int i = 0; i < addMk; i++) { mMap.addMarker(new MarkerOptions().position(newlocation[i]).title(sText[i]).draggable(true)); } ~~~省略~~~ }

以上となります、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すべての変数にstaticを付け、Icepickなどを使った保存・復元処理をすべて消したところ、掲題の件は解決となりました。見てくださった方本当にありがとうございました。

投稿2018/07/05 07:22

編集2018/07/05 11:23
hiropee

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問