2017-06-27 1 views
0

J'ai un fragment de carte que je le peupler avec des marqueurs que je télécharge à partir d'une API, j'ai ajouté un SearchView en haut de mon fragment et maintenant je cherche grâce à des marqueurs par titre ou coupés. et en tapant une liste d'éléments correspondant à la requête. puis, en tapant sur un élément, supprimez tous les autres marqueurs et zoomez sur le marqueur.recherche à travers des marqueurs de carte personnalisés et afficher les résultats dans une liste Android

comment puis-je faire cela?

fragment_map.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.abed.whitelabel.Fragments.CustomersFragment"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <android.support.v7.widget.SearchView 
     android:id="@+id/map_search_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     ></android.support.v7.widget.SearchView> 

     <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:map="http://schemas.android.com/apk/res-auto" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 


    </LinearLayout> 

</FrameLayout> 

Répondre

0

est inférieure à la logique qui pourrait être utilisé pour réaliser.

Je souhaite effectuer une recherche par titre ou par titre. et lors de la saisie d'une liste d'éléments correspondant à la requête

Vous pouvez définir un adaptateur pour votre vue de recherche avec toutes les entrées que vous obtenez à partir de l'API. Vérifiez this SO answer sur la façon de mettre en œuvre vue de la recherche avec des suggestions

tarauder un élément supprimer tous les autres marqueurs et zoom sur le marqueur exploité.

Je suppose que vous voulez taper sur la vue de la recherche élément de la liste de suggestions, suivez les étapes ci-dessous

1.Réglez un clic de l'élément d'écoute à la searchView.

2.Sur la méthode onItemClick(), obtenez l'objet de la liste à partir de la position sélectionnée, qui pourrait avoir les coordonnées de localisation. Faites les méthodes ci-dessous dans votre méthode onItemClick.

3.Clear tous les marqueurs sur la carte en appelant map.clear()

4.Zoom la carte de coordonnées sélectionné en appelant le code ci-dessous

CameraPosition cameraPosition = new CameraPosition.Builder() 
    .target(new LatLng(your_location.getLatitude(), your_location.getLongitude()))  // Sets the center of the map to location user 
    .zoom(17)     // Sets the zoom 
    .build();     // Creates a CameraPosition from the builder 
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

Tous les meilleurs. Codage heureux. :)

+0

Merci, mais le lien n'est pas exactement ce dont j'ai besoin, je remplis un tableau de ma classe personnalisée, et ensuite je veux faire une recherche dans ce tableau. et je cherche aussi une façon plus simple de comprendre cela. –

+0

@AbedNaseri Je crois que le lien a plus ou moins d'informations sur ce que vous essayez de réaliser sur la fonctionnalité de saisie semi-automatique dans la vue de recherche et il semble qu'il soit facile à comprendre. Vous devriez aussi pouvoir le faire avec une classe personnalisée. :) – SripadRaj

+0

Merci encore une fois, je n'ai pas vraiment besoin de suggestion automatique et je ne veux pas chercher dans l'API, j'ai déjà peuplé ma collection d'objets de l'API, maintenant besoin de rechercher dans le tableau seulement. @SripadRaj –