google maps iOS SDK: des icônes personnalisées pour être utilisés comme marqueurs
L'API Android est très classe pratique pour cela, IconGenerator
. À l'aide de la IconGenerator
dans mon application Android, je peux facilement faire un marqueur:
- est un simple rectangle avec la couleur de mon choix.
- redimensionne pour contenir du texte de n'importe quelle longueur.
- est PAS une fenêtre d'informations - j'aimerais le marqueur lui-même pour contenir le texte, comme montré dans l'image ci-dessous à partir de la version android.
//Android - problem solved with IconGenerator
IconGenerator iconGenerator = new IconGenerator(context);
iconGenerator.setStyle(IconGenerator.STYLE_GREEN); //or any other color
Bitmap iconBitmap = iconGenerator.makeIcon(myString);
Marker m = new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(iconBitmap))
.position(myLatLng);
map.addMarker(m); //map is a com.google.android.gms.maps.GoogleMap
Est-il un moyen de faire quelque chose d'aussi simple que cela en a iOS à l'aide de Swift?
Il y a eu un sortie récente de l'iOS de l'api qui permet de "marqueur de personnalisation", mais je ne vois pas comment l'appliquer à ce cas d'utilisation.
//iOS (Swift) - I don't know how to create the icon as in code above
let marker = GMSMarker(position: myLatLng)
marker.icon = //How can I set to a rectangle with color/text of my choosing?
marker.map = map // map is a GMSMapView
C'est ce que j'ai mentionné, créer un
J'ai édité ma question avant que j'ai vu mise à jour de votre réponse. Je vais mettre en œuvre demain. En attendant, pouvez-vous s'il vous plaît être un peu plus précis sur ce que l'UIVIew/code de l'étiquette.
Ok, je vais essayer de faire une vue similaire à ce que vous voulez. C'est juste rien, mais d'un point de vue qui seront convertis à l'image. Vous pouvez utiliser BezierPaths pour atteindre la flèche vers le bas point de forme comme de la vue. Aussi, si vous ne voulez pas ce que j'ai fait sur le dessus de marqueur, il suffit de supprimer
UIView
même que votre android qui consite de votre $ de prix, puis de créer un UIImage
d'elle, dont j'ai parlé la même fonction.J'ai édité ma question avant que j'ai vu mise à jour de votre réponse. Je vais mettre en œuvre demain. En attendant, pouvez-vous s'il vous plaît être un peu plus précis sur ce que l'UIVIew/code de l'étiquette.
Ok, je vais essayer de faire une vue similaire à ce que vous voulez. C'est juste rien, mais d'un point de vue qui seront convertis à l'image. Vous pouvez utiliser BezierPaths pour atteindre la flèche vers le bas point de forme comme de la vue. Aussi, si vous ne voulez pas ce que j'ai fait sur le dessus de marqueur, il suffit de supprimer
mapView.selectedMarker = marker
ligne et il sera un simple marqueurOriginalL'auteur lf215 | 2016-10-24
Vous devez vous connecter pour publier un commentaire.
Voici ce que j'ai fait
La sortie est
Et mon marqueur d'image a été
Vous pouvez changer votre couleur selon votre besoin. Aussi, si vous voulez quelque chose dans rectange, il vous suffit de créer un simple petit rectangulaire de l'image et de l'utiliser comme je l'ai fait ci-dessus et choisissez la couleur de votre besoin.
Ou si vous voulez un rectangle avec le texte, il vous suffit de créer un petit
UIView
avec une certaine étiquette, puis les convertirUIView
dansUIImage
et peut faire la même chose.Espère que cela aide!!
imageWithView
avec cette contrainte de code:let label = UILabel()
etlabel.widthAnchor.constraintEqualToConstant(50.0).active = true
mais j'obtiens un plantage dû àUIGraphicsGetCurrentContext()
à l'intérieur deimageWithView
être nul.Comment paramétrage centre le titre et l'extrait ?
OriginalL'auteur Rajan Maheshwari
Voici ce que j'ai fait pour résoudre le même problème, que vous êtes confrontés.
J'ai ajouté l'image ci-dessous à mon image de l'actif,
Maintenant, j'ai ajouté ci-dessous la méthode dans mon code:
Maintenant, j'ai appelé cette méthode, tout en assignant icône pour GMSMarker, comme ceci:
Il va générer l'icône de l'image comme ci-dessous:
Ici, j'ai gardé le fond de la taille de l'Image fixe, comme j'avais besoin. Vous pouvez toujours personnaliser pour ajuster selon la taille du texte, ainsi que plusieurs lignes.
OriginalL'auteur Mehul Thakkar
J'ai essayé de réécrire Mehul Thakkar réponse rapide 3. Espérons que cela fonctionnera pour vous. Mais c'est vraiment plus facile de faire de la coutume vue comme Dari dit.
OriginalL'auteur Eridana
Vous pouvez simplement ajouter une vue personnalisée en tant que marqueur de Google Map.
Vous pouvez utiliser imageView (pour le contenant que orange boîte de couleur) et de l'étiquette (pour le texte) ci-dessus, il
OriginalL'auteur Dari
Façon la plus simple à réaliser si vous avez seulement 1 image :
1) Dans le dernier X-Code de l'écriture de " marqueur.icône = imageLiteral".
2) Double-cliquez sur le mannequin de l'image de l'icône est apparu tout à l'heure.
3) sélectionner l'image désirée.
OriginalL'auteur jeet.chanchawat