前提・実現したいこと
AndroidStudioでcsvから配列に入れて使いたい。
Google Map上に、複数(最終的には300個くらい)の
マーカーを設置したい。
CSVファイルに入っている緯度・経度を配列に入れて使いたい。
とりあえず、手動で配列をつくって
地図上にマーカーを出せるようにはなったのですが、
(その状態を貼り付けます。)
300近くも手動で解列に入れるなんて無理なので
CSVファイルを読み込んで自動で配列に入れて
使えるようにしたい。
CSVファイルを読み込んで
手動で配列に入れていた部分と同じことを
できるようにしたい。
すべて1から10まで教えていただくのも悪いと思うので、
参考になるものがあれば教えていただきたいと質問しました。
(補足)
KeyやAreaCode、KindCodeは
今回の質問とは関係ありませんが
後々追加したい機能のために設定してるものです。
発生している問題・エラーメッセージ
CSVファイルを読み込んでリスト表示するサンプルプログラムを見たが、
私のプログラムでは「建物クラス」を作っているので
サンプルプログラムそのままでは使えないので困ってしまいました。
該当のソースコード
java
1//質問と関係ない部分 ここから 2 3public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 4 5 private GoogleMap mMap; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_maps); 11 // Obtain the SupportMapFragment and get notified when the map is ready to be used. 12 SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 13 .findFragmentById(R.id.map); 14 mapFragment.getMapAsync(this); 15 } 16 17 @Override 18 public void onMapReady(GoogleMap googleMap ) { 19 mMap = googleMap; 20 21 UiSettings settings = mMap.getUiSettings(); 22 settings.setCompassEnabled(true); 23 settings.setZoomControlsEnabled(true); 24 settings.setZoomGesturesEnabled(true); 25 settings.setTiltGesturesEnabled(true); 26 settings.setScrollGesturesEnabled(true); 27 settings.setRotateGesturesEnabled(true); 28 29 mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 30 31 LatLng start = new LatLng(35.-----,139.-----); //座標はプライバシー保護してます 32 mMap.moveCamera(CameraUpdateFactory.newLatLng(start)); 33 34//質問と関係ない部分 ここまで 35 36 37 Tatemono tatemonoData[]; 38 tatemonoData = new Tatemono[10]; 39 for(int i=0; i<tatemonoData.length; i++) { 40 tatemonoData[i] = new Tatemono(); 41 } 42 43 //座標はプライバシー保護してます 44 //手動配列入れ 45 tatemonoData[0].setKey("001"); 46 tatemonoData[0].setAreaCode("Map01"); 47 tatemonoData[0].setKindCode("Kind01"); 48 tatemonoData[0].setNorthLat(35.-----); 49 tatemonoData[0].setEastLong(139.-----); 50 51 tatemonoData[1].setKey("002"); 52 tatemonoData[1].setAreaCode("Map02"); 53 tatemonoData[1].setKindCode("Kind01"); 54 tatemonoData[1].setNorthLat(35.-----); 55 tatemonoData[1].setEastLong(139.-----); 56 57 tatemonoData[2].setKey("003"); 58 tatemonoData[2].setAreaCode("Map01"); 59 tatemonoData[2].setKindCode("Kind02"); 60 tatemonoData[2].setNorthLat(35.-----); 61 tatemonoData[2].setEastLong(139.-----); 62 63 tatemonoData[3].setKey("004"); 64 tatemonoData[3].setAreaCode("Map02"); 65 tatemonoData[3].setKindCode("Kind01"); 66 tatemonoData[3].setNorthLat(35.-----); 67 tatemonoData[3].setEastLong(139.-----); 68 69 //手動配列入れ終わり 70 71 //マーカーを設置する 72 for(int i=0; i<tatemonoData.length; i++) { 73 74 //座標を設定 75 LatLng latLng = new LatLng(tatemonoData[i].getNorthLat(), tatemonoData[i].getEastLong()); 76 //マーカー設置 77 mMap.addMarker(new MarkerOptions().position(latLng)); 78 } 79 80}
【建物クラス】
java
1 2import android.provider.Settings; 3 4public class Tatemono { 5 6 private String key; 7 private String areaCode; 8 private String kindCode; 9 private double northLat; 10 private double eastLong; 11 12 public void setKey(String s){ 13 if (s.equals(" ")) { 14 System.out.println("エラー"); 15 }else { key = s; } 16 } 17 18 public void setAreaCode(String area) { this.areaCode = areaCode; } 19 public void setKindCode(String kind) { this.kindCode = kindCode; } 20 public void setNorthLat(double northLat) { this.northLat = northLat; } 21 public void setEastLong(double eastLong) { this.eastLong = eastLong; } 22 23 public String getKey(){ return key; } 24 public String getAreaCode(){ return areaCode; } 25 public String getKindCode(){ return kindCode; } 26 public double getNorthLat(){ return northLat; } 27 public double getEastLong(){ return eastLong; } 28}
試したこと
以下のページは見たのですが、
Java初心者すぎて、どう自分のプログラムに生かせば良いかわかりませんでした。