2017-08-30 5 views
0

私はちょうどプログラミングを学び始めます。 私は自分のアプリケーションでマップのアクティビティを作成しました。以前に作成したマーカーを見つけるための検索ボックスがあります。私の質問は、マップボックス内のマーカーを検索ボックスから見つける方法です。私はデータベースを使用していませんでした。私の地図では10マーカーしかないので、マーカーを1つずつ作成しました。ここ 地図の編集テキストからマーカーを検索するフラグメントアンドロイド

onClickのような任意の関数や手続き何かがされて私は私の地図上のマーカーを表示することができます今すぐ

Double [] lat = { 
      -7.362366, -7.363552, 
      -7.360093, -7.384362, 
      -7.371319, -7.369428, 
      -7.342803, -7.364069, 
      -7.361312, -7.368688, 
      -7.358674, -7.369610, 
      -7.366610, -7.371556, 
      -7.348831, -7.362575 
    }; 
    Double [] lon = { 
      108.545943, 108.542081, 
      108.605078, 108.533789, 
      108.528442, 108.483738, 
      108.553713, 108.581835, 
      108.533522, 108.534660, 
      108.639087, 108.540899, 
      108.561781, 108.525056, 
      108.633850, 108.537306 
    }; 
    String [] nama ={ 
      "Situ Mustika", 
      "Rest area banjar atas", 
      "Kolam Mandalare", 
      "Dinding Sumanding", 
      "Lembah Pejamben", 
      "Situ Leutik", 
      "Pulo Majeti", 
      "Situs Kokoplak", 
      "Banjar Islamic Center", 
      "Taman kota Lapang Bakti", 
      "Alun alun Langensari", 
      "Alun alun Patroman", 
      "Taman Dobo", 
      "Taman Pintu singa", 
      "Langensari Sport Center", 
      "Banjar Waterpark" 
    }; 
    for(int i = 0; i < lat.length; i++) 
    { 
     myMap.addMarker(new MarkerOptions() 
       .position(new LatLng(lat[i], lon[i])) 
       .title(nama[i]) 
       .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))); 
    } 

配列内の私のマーカーの全てをですが、私は何をしたいEditTextからそれを検索することですボタンから?

これは配列マーカーのスクリーンショットです Marker From array 次に何をすればよいですか?

答えて

0

次のコードを試してください。このメソッドGoogleMap.addMarker()は、追加されたマーカーを返します。マーカーをリストに保存します。

List<Marker> list = new ArrayList<Marker>(); 

    for(int i = 0; i < Lat.length; i++) 
    { 
    Marker marker = map.addMarker(new MarkerOptions() 
     .position(new LatLng(Lat[i], Lon[i])) 
     .title(Market[i]) 
     .snippet(Address[i]) 
     .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))); 
    list.add(marker); 
    } 

ここで条件(ここではスニペット)に合ったマーカーを検索してください。

for(Marker m : list) { 
    if(m.getSnippet().equals(yourSnippet)) { 
     // move google map to focus on marker 
     break; // stop the loop 
    } 
} 

別の方法:

searchbutton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 


        for(int i=0; i < nama.length; i++) { 
         if (nama[i].equals(et.getText.toString())) { 
          //Remove old marker 
          oldmarker.remover(); 
          // now inflate new marker like this 
          myMap.addMarker(new MarkerOptions() .position(new LatLng(lat[i], lon[i])) .title(nama[i]) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptor‌​Factory.HUE_BLUE)));‌ 

          CameraPosition camPos = new CameraPosition.Builder() 
            .target(new LatLng(lat[i], lon[i])) 
            .zoom(18) 
            .build(); 
          CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos); 
          googleMap.animateCamera(camUpd3); 

          break; 
         }else 
         { 
          //NOt found any nama . 
         } 
        } 


        ​} 

      }); 

私はそれがつもり実行されていますので、どのように

+0

はい、それは仕事です。しかし、問題は私は大文字と小文字のような正確な名前を書くべきです –

+0

umm ...しかし、問題は私が "リンカーンパーク"のような第二の単語だけを書きたいと思っています。 "リンカーン"それは起こっていない –

+0

@ MarkJohnson大丈夫、Edittext.orの 'スピナー'のインスタンスをすることができますまたはAutoCompleteTextViewを使用してくださいhttps://developer.android.com/reference/android/widget/AutoCompleteTextView.htmlのこのリンクを参照してください私はこれがあなたに良いアイデアを与えることを願っています。 –

0

1)は、マップ

3上

2)表示のArrayListのマーカーを、あなたの10個のマーカーの配列リストをクリート)

ロードマーカーをマッピングするために、検索のArrayListをArrayListにして表示する検索マッピングするためのArrayList例えば

for (int i = 0; i < result.size(); i++) { 
    MarkerOptions marker = new MarkerOptions().position(
           new LatLng(result.get(i).getShopLat(), result 
             .get(i).getShopLng())).title(
           result.get(i).getShopName()); 
         // Changing marker icon 
         marker.icon(BitmapDescriptorFactory 
           .fromResource(R.drawable.marker)); 

         // adding marker 
         googleMap.addMarker(marker); 

        } 


        LatLng latLong = new LatLng(user.getUserLatitude(), user.getUserLogitude()); 

        CameraPosition cameraPosition = new CameraPosition.Builder() 
          .target(latLong).zoom(19f).tilt(70).build(); 
        googleMap.setMyLocationEnabled(true); 
        googleMap.animateCamera(CameraUpdateFactory 
          .newCameraPosition(cameraPosition));} 

検索配列リストからSearching in a ArrayList with custom objects for certain strings

および負荷検索マーカー。

+0

、これはあなたを助けることを願って?私はどこにコードを置くべきですか?それは 'onMapReady'ですか? –

+0

このリンクを確認するhttps://stackoverflow.com/questions/28503562/google-maps-marker-array –

+0

斑点マーカーこれを見てくださいhttps://stackoverflow.com/questions/18964164/search-android-map-marker-titles - と - スニペット –

関連する問題