Changement de Google Maps Marqueur Sélectionné ou modifier un marqueur de couleur? [iOS]
Je me demandais si il existe un moyen de changer la couleur ou l'image de la marque sélectionnée et ensuite de le modifier en arrière quand il ne l'est pas plus. Je vois que Yelp, qui utilise Apple Maps, des modifications de la couleur/image de la marque sélectionnée, puis retour à l'original une fois que l'on n'est plus sélectionnée et je me demandais si la Carte de Google, iOS SDK avait quelque chose de semblable ou si quelqu'un a rencontré ce problème et trouvé une solution.
Ce que j'ai essayé:
J'ai regardé à travers Google Documentation sur les Marqueurs (trouvé ici) et de voir qu'ils ont marker.opacity
qui modifie l'opacité et marker.icon = [GMSMarker markerImageWithColor:[UIColor blackColor]];
qui change le marqueur de couleur.
J'ai essayé de changer manuellement dans -(UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker;
par l'ajout de cette ligne marker.icon = [GMSMarker markerImageWithColor: [UIColor differentColor]];
ou cette ligne marker.icon = [UIImage imageNamed:@"differentColorImage"];
mais lorsque vous touchez de l'marqueur/info-fenêtre, l'image/couleur reste la même.
Quelqu'un a des idées? Tout aide. Merci à l'avance!
OriginalL'auteur Chris | 2014-02-20
Vous devez vous connecter pour publier un commentaire.
À changer d'icône de marqueur sélectionné pour sélectionné ce que j'ai fait,
J'ai d'abord ajouter tous les GMSMarker dans un tableau.Après que l'intérieur de la fonction de délégué didTapMarker:
J'ai eu le marqueur sélectionné et le changement de l'icône de marqueur
C'est de travailler pour moi.
OriginalL'auteur Sefi
Juste au cas où quelqu'un vient et voit cela, j'ai résolu ce problème en utilisant ma propre méthode et propres variables. J'ai utilisé deux variables globales qui sont:
GMSMarker *selectedMarker
etBOOL isMarkerActive
. À l'intérieur demapview:markerInfoWindow
- je vérifier si le marqueur est active, si c'est cela signifie qu'il y a un actif avant de celle-ci pour aller unhighlight que le marqueur. Après que j'ai mis le marqueur actuel est le marqueur sélectionné, définissez le booléen à true et ensuite mettre en évidence que le marqueur, comme indiqué ci-dessous.À l'intérieur de la highlightMarker méthode-je vérifier si l'envoyé de marqueur, j'ai envoyé est égal à la carte du marqueur sélectionné
Faire de même dans le unhighlightMarker méthode
Enfin, j'ai vérifier les robinets sur la carte et de voir si le booléen est vrai et que la carte du marqueur sélectionné n'est pas égale à néant
Espère que cela aide quelqu'un d'autre.
L'utilisation de cette méthode peut-on mettre en évidence et unhighlight plus d'un marqueur ? Supposons que j'ai 5 marqueurs et j'ai sélectionné 3 d'entre eux maintenant, je veux unhighlight un d'entre eux est-ce possible ?
vous devriez être en mesure de. Mettre à jour la logique un peu, mais je ne vois pas pourquoi pas. Je voudrais faire un tableau avec des marqueurs. L'utiliser pour parcourir la liste des marqueurs et de la marque de la liste.
Moi aussi j'ai travaillé dans quelques dans le cas contraire., au lieu de mettre un bool, j'ai utilisé marker.info propriété pour définir la valeur. Comme
marker.userdata = @"Selected"
pour faire marqueur sélectionné et de la même manière que pour les non sélectionnés. En vérifiant la valeur de marqueur.userdata je peux maintenant mettre en évidence un marqueur.qui sonne bien pour moi. Content que cela fonctionne pour vous.
OriginalL'auteur Chris