質問編集履歴

6

文法の変更

2021/06/15 13:56

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 地図上ピンの絵柄えたい
1
+ Realmを使っての絵柄変
test CHANGED
File without changes

5

文法の修正

2021/06/15 13:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,161 +3,3 @@
3
3
  本やネットで学びながら個人的にiOSのアプリを作りたいと思い始めました。
4
4
 
5
5
  その中でどうしても出来ずにおりますので、解決方法があればご教示くださいませ。
6
-
7
-
8
-
9
- 作っているアプリはMapKitを使い、地図上の好きなところにピンを立て、
10
-
11
- そのピンの吹き出しのタイトルとサブタイトルを別画面で入力して保存させるものです。
12
-
13
- 保存はRealmを使用しております。
14
-
15
- 現状、ピンの座標やタイトル、サブタイトルの保存は出来て表示も出来ているのですが、
16
-
17
- そのピンの絵柄を個別に設定させる事が出来ません(全て統一であれば変更は出来ました)。
18
-
19
- 絵柄はタイトルとサブタイトルと一緒に保存させる形にして、地図上に表示されるピンで保存している緯度と経度を元に検索させる形で表示出来ればと考えております。
20
-
21
-
22
-
23
- 下記の方法だと一番最初のデータ?だけを参照しているようで全てその絵柄となってしまいます。
24
-
25
- なんとか個別に登録出来ませんでしょうか?
26
-
27
-
28
-
29
- ### 該当のソースコード
30
-
31
-
32
-
33
- ```ここに言語名を入力
34
-
35
- //***Realmに保存したピンを起動時に呼び出す***
36
-
37
- func getAllPins() -> [saveRealm] {
38
-
39
- let realm = try! Realm()
40
-
41
- var results: [saveRealm] = []
42
-
43
- for pin in realm.objects(saveRealm.self) {
44
-
45
- results.append(pin)
46
-
47
- }
48
-
49
- return results
50
-
51
- }
52
-
53
- //***座標をAnnotationに変換***
54
-
55
- func getAnnotations() -> [MKPointAnnotation] {
56
-
57
- let realm = try! Realm()
58
-
59
- let pins = getAllPins()
60
-
61
- var results:[MKPointAnnotation] = []
62
-
63
- pins.forEach { pin in
64
-
65
-
66
-
67
- let annotation = TestMKPointAnnotation()
68
-
69
- let centerCoordinate = CLLocationCoordinate2D(latitude: (pin.ido as NSString).doubleValue, longitude: (pin.keido as NSString).doubleValue)
70
-
71
- annotation.coordinate = centerCoordinate
72
-
73
-
74
-
75
- let results2 = realm.objects(saveRealm.self).filter("ido == '(pin.ido)' AND keido == '(pin.keido)'")
76
-
77
- annotation.title = results2[0].basyo
78
-
79
- annotation.subtitle = results2[0].time
80
-
81
- recordMapView.addAnnotation(annotation)
82
-
83
-
84
-
85
- results.append(annotation)
86
-
87
- }
88
-
89
- return results
90
-
91
- }
92
-
93
- ```
94
-
95
- Assets.xcassetsにa1とa2のファイル名で画像が登録されており、
96
-
97
- その名前をRealmに登録する事によって呼び出そうと考えております。
98
-
99
- ```
100
-
101
- //***ピンの設定***
102
-
103
- func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
104
-
105
- if annotation === mapView.userLocation {
106
-
107
- (annotation as? MKUserLocation)?.title = nil
108
-
109
- return nil
110
-
111
- } else {
112
-
113
- let egaraImage = mapView.dequeueReusableAnnotationView(withIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier, for: annotation) as! MKMarkerAnnotationView
114
-
115
- egaraImage.canShowCallout = true
116
-
117
- egaraImage.annotation = annotation
118
-
119
- egaraImage.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
120
-
121
- egaraImage.markerTintColor = UIColor.red
122
-
123
-
124
-
125
- if let test2 = annotation as? TestMKPointAnnotation {
126
-
127
- let pins = getAllPins()
128
-
129
- var results:[MKMarkerAnnotationView] = []
130
-
131
- pins.forEach { pin in
132
-
133
-
134
-
135
- let imageData = results2[0].icon1
136
-
137
- if imageData == "a1" {
138
-
139
- egaraImage.glyphImage = UIImage(named: "a1")
140
-
141
- }
142
-
143
- if imageData == "a2" {
144
-
145
- egaraImage.glyphImage = UIImage(named: "a2")
146
-
147
-
148
-
149
- }
150
-
151
-  }
152
-
153
-   return egaraImage
154
-
155
-     }
156
-
157
-  }
158
-
159
- ``` 
160
-
161
- 今回の質問全て見当違いの質問でしたら申し訳ございませんが、ご存知の方がおりましたらご教示くださいませ。
162
-
163
- 宜しくお願い致します。

4

修正

2021/06/15 13:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -134,15 +134,15 @@
134
134
 
135
135
  let imageData = results2[0].icon1
136
136
 
137
- if imagedata == "a1" {
137
+ if imageData == "a1" {
138
138
 
139
- egaraimage.glyphImage = UIImage(named: "a1")
139
+ egaraImage.glyphImage = UIImage(named: "a1")
140
140
 
141
141
  }
142
142
 
143
- if imagedata == "a2" {
143
+ if imageData == "a2" {
144
144
 
145
- egaraimage.glyphImage = UIImage(named: "a2")
145
+ egaraImage.glyphImage = UIImage(named: "a2")
146
146
 
147
147
 
148
148
 

3

文法の修正

2021/06/12 12:38

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Realmに保存した情報を元に地図上のピンの絵柄を変えたい
1
+ 地図上のピンの絵柄を変えたい
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  本やネットで学びながら個人的にiOSのアプリを作りたいと思い始めました。
4
4
 
5
- その中でどうしてもわからないことがあり、解決方法があればご教示くださいませ。
5
+ その中でどうしても出来ずにおますので、解決方法があればご教示くださいませ。
6
6
 
7
7
 
8
8
 
@@ -16,13 +16,13 @@
16
16
 
17
17
  そのピンの絵柄を個別に設定させる事が出来ません(全て統一であれば変更は出来ました)。
18
18
 
19
- 絵柄はタイトルとサブタイトルと一緒に保存させる形にして、
19
+ 絵柄はタイトルとサブタイトルと一緒に保存させる形にして、地図上に表示されるピンで保存している緯度と経度を元に検索させる形で表示出来ればと考えております。
20
-
21
- 地図上に表示されるピンの吹き出し内のタイトルとサブタイトルを元に
22
-
23
- 検索させる形で表示出来ればと考えております。
24
20
 
25
21
 
22
+
23
+ 下記の方法だと一番最初のデータ?だけを参照しているようで全てその絵柄となってしまいます。
24
+
25
+ なんとか個別に登録出来ませんでしょうか?
26
26
 
27
27
 
28
28
 
@@ -92,11 +92,15 @@
92
92
 
93
93
  ```
94
94
 
95
+ Assets.xcassetsにa1とa2のファイル名で画像が登録されており、
96
+
97
+ その名前をRealmに登録する事によって呼び出そうと考えております。
98
+
95
99
  ```
96
100
 
97
101
  //***ピンの設定***
98
102
 
99
- func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
103
+ func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
100
104
 
101
105
  if annotation === mapView.userLocation {
102
106
 
@@ -120,29 +124,39 @@
120
124
 
121
125
  if let test2 = annotation as? TestMKPointAnnotation {
122
126
 
123
-           egaraImage.glyphImage = UIImage(named: )! ←一括で変える場合はこうしました
127
+ let pins = getAllPins()
124
128
 
125
- egaraimage.markerTintColor = UIColor.blue
129
+ var results:[MKMarkerAnnotationView] = []
126
130
 
127
- egaraimage.titleVisibility = .visible
128
-
129
- }
130
-
131
- return egaraImage
131
+ pins.forEach { pin in
132
-
133
- }
134
-
135
- }
136
-
137
- ```
138
-
139
- 表示させる画像は、Documentフォルダに保存し、RealmにはそのファイルURLを保存する形にしております。
140
-
141
- 余談ではある上にアホな質問で恥ずかしいのですが、仮にAssets.xcassetsにセットした画像を使う場合、
142
-
143
- そのファイル名をRealmに保存させて呼び出して使うって事は可能なのでしょうか?
144
132
 
145
133
 
134
+
135
+ let imageData = results2[0].icon1
136
+
137
+ if imagedata == "a1" {
138
+
139
+ egaraimage.glyphImage = UIImage(named: "a1")
140
+
141
+ }
142
+
143
+ if imagedata == "a2" {
144
+
145
+ egaraimage.glyphImage = UIImage(named: "a2")
146
+
147
+
148
+
149
+ }
150
+
151
+  }
152
+
153
+   return egaraImage
154
+
155
+     }
156
+
157
+  }
158
+
159
+ ``` 
146
160
 
147
161
  今回の質問全て見当違いの質問でしたら申し訳ございませんが、ご存知の方がおりましたらご教示くださいませ。
148
162
 

2

修正

2021/06/12 11:15

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Realmに保存した情報を元にMapKitのピンの絵柄を変えたい
1
+ Realmに保存した情報を元に地図上のピンの絵柄を変えたい
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
 
66
66
 
67
- let annotation = MKPointAnnotation()
67
+ let annotation = TestMKPointAnnotation()
68
68
 
69
69
  let centerCoordinate = CLLocationCoordinate2D(latitude: (pin.ido as NSString).doubleValue, longitude: (pin.keido as NSString).doubleValue)
70
70
 

1

修正

2021/06/11 10:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -118,9 +118,15 @@
118
118
 
119
119
 
120
120
 
121
-           egaraImage.glyphImage = UIImage(named: )! //一括で変える場合はこうしました
121
+ if let test2 = annotation as? TestMKPointAnnotation {
122
122
 
123
+           egaraImage.glyphImage = UIImage(named: )! ←一括で変える場合はこうしました
123
124
 
125
+ egaraimage.markerTintColor = UIColor.blue
126
+
127
+ egaraimage.titleVisibility = .visible
128
+
129
+ }
124
130
 
125
131
  return egaraImage
126
132