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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

3354閲覧

【Kotlin】を使ったAndroidアプリでのOpenStreetMap表示方法について

kenta0228

総合スコア20

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2019/07/29 10:47

前提・実現したいこと

AndroidStudioを使用して、"OpenStreetMap"を表示するAndroidアプリを下記HPを参考にして作成(言語:Kotlin)を勉強しています。

【参考HP】
https://qiita.com/ohwada/items/c3741fb14a5142035314

OSMの表示まではできたのですが、縮尺がおかしいため、下記で中心の緯度経度とズームを設定しようとしたところエラーが表示されて解決できなくなったため、原因解決に向けてお知恵をお借りできればと思い質問させていただきました。
解決方法がお分かりの方がおられればアドバイス頂けますよう宜しくお願いいたします。

緯度経度、ズーム設定がされていない状態。
イメージ説明

<参考HPからの引用したソース>
中心の緯度経度とズームを設定する。
mMapView = (MapView) findViewById(R.id.mapView);

IMapController mapController = mMapView.getController(); mapController.setZoom( ズームレベル ); GeoPoint centerPoint = new GeoPoint( 緯度, 経度 ); mapController.setCenter(centerPoint);

発生している問題・エラーメッセージ

ERROR: Failed to parse XML in /Users/Kenta/Desktop/program/Book_FirstAndroidProgram/Ch10_SaintTropez/app/src/main/AndroidManifest.xml ParseError at [row,col]:[23,5] Message: expected start or end tag Affected Modules: app WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html Affected Modules: app

該当のソースコード

Kotlin

1class MainActivity : AppCompatActivity() { 2 3 override fun onCreate(savedInstanceState: Bundle?) { 4 super.onCreate(savedInstanceState) 5 setContentView(R.layout.activity_main) 6 7 // OpenStreetMap用に追加 8 Configuration.getInstance().load(getApplicationContext(), PreferenceManager.getDefaultSharedPreferences(getApplicationContext())) 9 10 setContentView(R.layout.activity_main) 11 12 mMapView = findViewById<View>(R.id.mapView) as MapView 13 14 val mapController = mMapView.getController() 15 mapController.setZoom( 28 ) 16 val centerPoint = GeoPoint(34.923842, 137.196626) 17 mapController.setCenter(centerPoint) 18 19 mMapView.setBuiltInZoomControls(true) 20 mMapView.setMultiTouchControls(true) 21 22 webView.settings.javaScriptEnabled = true 23 webView.loadUrl("file:///android_asset/html/index.html") 24 25 registerForContextMenu(webView) 26 } 27 28 override fun onCreateOptionsMenu(menu: Menu?): Boolean { 29 menuInflater.inflate(R.menu.main, menu) 30 return true 31 } 32 33 override fun onOptionsItemSelected(item: MenuItem?): Boolean { 34 when (item?.itemId) { 35 R.id.top -> { 36 webView.loadUrl("file:///android_asset/html/index.html") 37 return true 38 } 39 R.id.lunch01 -> { 40 webView.loadUrl("file:///android_asset/html/lunch02.html") 41 return true 42 } 43 R.id.dinner01 -> { 44 webView.loadUrl("file:///android_asset/html/dinner01.html") 45 return true 46 } 47 R.id.dinner02 -> { 48 webView.loadUrl("file:///android_asset/html/dinner02.html") 49 return true 50 } 51 R.id.map -> { 52 webView.loadUrl("file:///android_asset/html/map.html") 53 return true 54 } 55 } 56 return super.onOptionsItemSelected(item) 57 } 58 59 override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) { 60 super.onCreateContextMenu(menu, v, menuInfo) 61 menuInflater.inflate(R.menu.context, menu) 62 } 63 64 override fun onContextItemSelected(item: MenuItem?): Boolean { 65 when (item?.itemId) { 66 R.id.sms -> { 67 val number = "999-9999-9999" 68 val uri = Uri.parse("sms:$number") 69 var intent = Intent(Intent.ACTION_VIEW) 70 intent.data = uri 71 intent.putExtra("sms_body", "こんにちは") 72 startActivity(intent) 73 return true 74 } 75 R.id.mail -> { 76 val email = "nobody@example.com" 77 val subject = "予約問い合わせ" 78 val text = "以下の通り予約希望します" 79 val uri = Uri.parse("mailto:") 80 val intent = Intent(Intent.ACTION_SENDTO) 81 intent.data = uri 82 intent.putExtra(Intent.EXTRA_EMAIL, arrayOf(email)) 83 .putExtra(Intent.EXTRA_SUBJECT, subject) 84 .putExtra(Intent.EXTRA_TEXT, text) 85 if (intent.resolveActivity(packageManager) != null) { 86 startActivity(intent) 87 } 88 return true 89 } 90 R.id.share -> { 91 val text = "美味しいレストランを紹介します" 92 val intent = Intent(Intent.ACTION_SEND) 93 intent.type = "text/plain" 94 intent.putExtra(Intent.EXTRA_TEXT, text) 95 val chooser = Intent.createChooser(intent, null) 96 if (intent.resolveActivity(packageManager) != null) { 97 startActivity(chooser) 98 } 99 return true 100 } 101 R.id.browse -> { 102 val url: String = "http://www.yahoo.co.jp/" 103 val intent = Intent(Intent.ACTION_VIEW) 104 intent.data = Uri.parse(url) 105 if (intent.resolveActivity(packageManager) != null) { 106 startActivity(intent) 107 } 108 return true 109 } 110 } 111 return super.onContextItemSelected(item) 112 } 113} 114 115

補足情報(FW/ツールのバージョンなど)

Mac(macOS Mojave:10.14.5)
AndroidStudio3.4を利用しております。
他に必要な情報などあればお教えいただければ調べて記載いたします。

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

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

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

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

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

guest

回答1

0

自己解決

参考HPのソースコードを拝見して解決しました。
内容の理解までできておりませんが、とりあえず表示できるところまで行きました。

https://qiita.com/ohwada/items/c3741fb14a5142035314

投稿2019/07/29 14:48

kenta0228

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問