teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

修正 ちょい修正

2018/11/11 09:31

投稿

colling
colling

スコア798

answer CHANGED
@@ -192,7 +192,7 @@
192
192
  if(arrayDataSearch(place)){//placeをjasonの中から探す
193
193
  var newPlace = arrayDataSearch(place);//newplaceに代入
194
194
  console.log(newPlace);
195
- moveMap(newPlace,15);//newplaceの場所mapを再描画 拡大 15
195
+ moveMap(newPlace,15);//newplaceの場所mapを移動 拡大 15
196
196
  }else{//--検索結果がない場合
197
197
  console.log(place + 'には何もありません');//ログ出力
198
198
  }

4

修正 ちょい修正

2018/11/11 09:31

投稿

colling
colling

スコア798

answer CHANGED
@@ -182,6 +182,7 @@
182
182
  }
183
183
  ```
184
184
 
185
+ 検索フォーム部分
185
186
  ```javascript
186
187
  $(function () {
187
188
  $('#searchButton').click(function (e) {

3

追記

2018/11/10 22:08

投稿

colling
colling

スコア798

answer CHANGED
@@ -157,4 +157,45 @@
157
157
  mapTypeId: google.maps.MapTypeId.ROADMAP
158
158
  styles: styles,
159
159
  };
160
+ ```
161
+
162
+ ---
163
+ 追記
164
+
165
+ 移動するだけの方がいいですね
166
+ 最終的にこちらをコールしてください
167
+ ```javascript
168
+ function moveMap(place,z){
169
+ var geocoder = new google.maps.Geocoder();
170
+ geocoder.geocode(
171
+ {
172
+ 'address': place
173
+ },
174
+ function(results, status){
175
+ if(status==google.maps.GeocoderStatus.OK){
176
+ //処理
177
+ map.setZoom(z);
178
+ map.setCenter(results[0].geometry.location);
179
+ }
180
+ }
181
+ );
182
+ }
183
+ ```
184
+
185
+ ```javascript
186
+ $(function () {
187
+ $('#searchButton').click(function (e) {
188
+ e.preventDefault();
189
+ place = $('#searchPlace').val();
190
+ if(place!=''){//検索キーが空なら何もしない
191
+ if(arrayDataSearch(place)){//placeをjasonの中から探す
192
+ var newPlace = arrayDataSearch(place);//newplaceに代入
193
+ console.log(newPlace);
194
+ moveMap(newPlace,15);//newplaceの場所でmapを再描画 拡大 15
195
+ }else{//--検索結果がない場合
196
+ console.log(place + 'には何もありません');//ログ出力
197
+ }
198
+ }
199
+ });
200
+ });
160
201
  ```

2

修正 ちょい修正

2018/11/10 22:07

投稿

colling
colling

スコア798

answer CHANGED
@@ -36,7 +36,7 @@
36
36
  ```
37
37
 
38
38
  住所だけの検索だと最寄駅名とか他のキーワードを後から入れたくなるのが想定されますので、
39
- 作る配列は検索用のwordsというキーと、結果を返すreturnというキーの連想配列を作ります。
39
+ 作る配列は検索用のwordsというキーと、結果(マップのセンターにしたい場所)を返すreturnというキーの連想配列を作ります。
40
40
  ```javascript
41
41
  var searchArray = [];
42
42
  $.getJSON("JSON.json", function (data) {

1

修正 ちょい修正

2018/11/10 12:26

投稿

colling
colling

スコア798

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  > 検索値をJSONの住所とし、マーカーが立っている場所のみの座標を取得したく思っています。
4
4
  > trueならその座標へ、falseなら移動しない or 初期表示の座標へ
5
5
 
6
- ということですが、もともと地名を入れたら、座標を返すgoogle.maps.Geocoder()を使っているので、住所からキーワード検索して、`検索結果が(true)`ならば住所を指定して`再描画`、`検索結果が(false)`ならば何もしない。という実装になります。
6
+ ということですが、もともと地名を入れたら、座標を返すgoogle.maps.Geocoder()を使っているので、住所からキーワード検索して、`検索結果が(true)`ならば`住所を指定して再描画`、`検索結果が(false)`ならば`何もしない`。という実装になります。
7
7
 
8
8
 
9
9
  まず、jsonから検索用の配列を作りますが、jsonファイルは下記のようなものと想定して話を進めます。