質問編集履歴

1

コードの追記

2023/01/03 08:46

投稿

wata-091
wata-091

スコア2

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,9 @@
7
7
 
8
8
  コードについては、下記のように実装したいと考えております。
9
9
  ヒントや、こうしたら実装できるかも?などなどなんでもいいので何か助言いただければ嬉しいです。
10
+
11
+ *下記編集した部分となります。
12
+ 意図としましては、DBに何も保存されていない場合は、Mapに東京周辺を表示させる、保存されている場合はMap上にマーカーを表示させ、マーカー周辺のMapを表示させるという動作を実現させたいと思っています。
10
13
 
11
14
  ```ここに言語を入力
12
15
  class Memo_dash : AppCompatActivity(), OnMapReadyCallback {
@@ -33,32 +36,17 @@
33
36
 
34
37
  override fun onMapReady(googleMap: GoogleMap) {
35
38
 
39
+ mMap = googleMap
36
40
  val helper = DBHelper(this)
37
- val memoId: Long = intent.getLongExtra("id",0)
41
+ val mapsId: Long = intent.getLongExtra("id",0)
38
- ↓座標を入れる箱を用意?
39
- var lat : Double? = null
40
- var long : Double? = null
41
42
 
42
- mMap = googleMap
43
-
44
- // 現在はActivityを開いた際に下記座標に移動する設定となってます。
45
- val tokyo = LatLng(35.68, 139.76)
46
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(tokyo, 10F))
47
-
48
- // タップでマーカーを追加
49
- mMap.setOnMapClickListener { latlng ->
50
- val location = LatLng(latlng.latitude, latlng.longitude)
51
- mMap.addMarker(MarkerOptions().position(location))
52
- }
53
-
54
-
55
- if (memoId != 0L) {
43
+ if (mapsId != 0L) {
56
44
  helper.readableDatabase.use { db ->
57
45
  db.query(
58
46
  TABLE_NAME,
59
47
  arrayOf("id", "lat", "long"),
60
48
  "id = ?",
61
- arrayOf(memoId.toString()),
49
+ arrayOf(mapsId.toString()),
62
50
  null,
63
51
  null,
64
52
  null,
@@ -66,26 +54,33 @@
66
54
  )
67
55
  .use { cursor ->
68
56
  if (cursor.moveToFirst()) {
57
+ val location = LatLng(cursor.getDouble(1),cursor.getDouble(2))
69
- ここでDBに保存した座標情報を読み込み、Mapにマーカーを追加したい。
58
+ mMap.addMarker(MarkerOptions().position(location))
59
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location,10F))
70
60
  }
71
61
  }
72
-
73
62
  }
63
+ }else{
64
+ val tokyo = LatLng(35.68, 139.76)
65
+ mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(tokyo, 10F))
74
66
  }
75
67
 
68
+ // タップした時のリスナーをセット
69
+ mMap.setOnMapClickListener { latlng1 : LatLng ->
76
- findViewById<Button>(R.id.save_button2).setOnClickListener{
70
+ val location = LatLng(latlng1.latitude, latlng1.longitude)
71
+ mMap.addMarker(MarkerOptions().position(location))
77
72
  helper.writableDatabase.use {
78
73
  db ->
79
74
  val values = ContentValues().apply {
80
- ここで、タップして追加したマーカーの座標情報をDBにputしたい。
75
+ put("lat", latlng1.latitude)
76
+ put("long", latlng1.longitude)
81
77
  }
82
- if (memoId != 0L) {
78
+ if (mapsId != 0L) {
83
- db.update(TABLE_NAME, values,"id = ?", arrayOf(memoId.toString()))
79
+ db.update(TABLE_NAME, values,"id = ?", arrayOf(mapsId.toString()))
84
80
  } else {
85
81
  db.insert(TABLE_NAME,null, values)
86
82
  }
87
83
  }
88
- finish()
89
84
  }
90
85
  }
91
86
  }