Vous pouvez demander dynamiquement des images d'icônes à partir de l' API Google Maps avec les URL:
http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FE7569
Qui ressemble à ceci: l'image est de 21x34 pixels et la pointe de la broche est en position (10, 34)
Et vous aurez également besoin d'une image d'ombre distincte (afin qu'elle ne chevauche pas les icônes voisines):
http://chart.apis.google.com/chart?chst=d_map_pin_shadow
Qui ressemble à ceci: l'image est de 40x37 pixels et la pointe de la broche est en position (12, 35)
Lorsque vous construisez vos MarkerImage, vous devez définir la taille et les points d'ancrage en conséquence:
var pinColor = "FE7569";
var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
new google.maps.Size(40, 37),
new google.maps.Point(0, 0),
new google.maps.Point(12, 35));
Vous pouvez ensuite ajouter le marqueur à votre carte avec:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0,0),
map: map,
icon: pinImage,
shadow: pinShadow
});
Remplacez simplement "FE7569" par le code couleur que vous recherchez. Par exemple:
Crédit dû à Jack B Nimble pour l'inspiration;)
Si vous utilisez l'API Google Maps v3, vous pouvez utiliser
setIcon
par exempleOu dans le cadre du marqueur init:
Autres couleurs:
Utilisez le morceau de code suivant pour mettre à jour les marqueurs par défaut avec des couleurs différentes.
la source
Voici une belle solution utilisant l'API Gooogle Maps elle-même. Pas de service externe, pas de bibliothèque supplémentaire. Et il permet des formes personnalisées et plusieurs couleurs et styles. La solution utilise des marqueurs vectoriels, que googlemaps api appelle Symbols .
Outre les quelques symboles prédéfinis et limités, vous pouvez créer n'importe quelle forme de n'importe quelle couleur en spécifiant une chaîne de chemin SVG ( Spec ).
Pour l'utiliser, au lieu de définir l'option de marqueur «icône» sur l'url de l'image, vous le définissez dans un dictionnaire contenant les options de symbole. À titre d'exemple, j'ai réussi à créer un symbole qui est assez similaire au marqueur standard:
Si vous prenez soin de garder le point clé de la forme à 0,0, vous évitez de définir des paramètres de centrage des icônes de marqueur. Un autre exemple de chemin, le même marqueur sans le point:
Et ici, vous avez un drapeau très simple et laid:
Vous pouvez également créer les chemins à l'aide d'un outil visuel comme Inkscape (GNU-GPL, multiplateforme). Quelques conseils utiles:
la source
Eh bien, la chose la plus proche que j'ai pu obtenir avec StyledMarker est la suivante .
La balle au milieu n'est pas aussi grosse que celle par défaut. La classe StyledMarker construit simplement cette URL et demande à l'API Google de créer le marqueur .
À partir de l' exemple d' utilisation de classe, utilisez "% E2% 80% A2" comme texte, comme dans:
Vous devrez modifier StyledMarker.js pour commenter les lignes:
car cela réduira la chaîne de texte à 2 caractères.
Vous pouvez également créer des images de marqueur personnalisées basées sur celle par défaut avec les couleurs que vous souhaitez et remplacer le marqueur par défaut par un code tel que celui-ci:
la source
J'ai un peu étendu la réponse de vokimon , ce qui le rend un peu plus pratique pour changer d'autres propriétés également.
Usage:
Ou lors de la définition d'un nouveau marqueur:
la source
Salut, vous pouvez utiliser l'icône comme SVG et définir les couleurs. Voir ce code
la source
depuis la version 3.11 de l'API google maps, l'
Icon
objet remplaceMarkerImage
. L'icône prend en charge les mêmes paramètres que MarkerImage. J'ai même trouvé que c'était un peu plus simple.Un exemple pourrait ressembler à ceci:
pour plus d'informations consultez ce site
la source
la source
Comme d'autres l'ont mentionné, la réponse de vokimon est excellente, mais malheureusement, Google Maps est un peu lent lorsqu'il existe de nombreux marqueurs basés sur SymbolPath / SVG à la fois.
Il semble que l'utilisation d'un URI de données soit beaucoup plus rapide, à peu près au même niveau que les PNG.
De plus, comme il s'agit d'un document SVG complet, il est possible d'utiliser un cercle rempli approprié pour le point. Le chemin est modifié afin qu'il ne soit plus décalé vers le haut à gauche, donc l'ancre doit être définie.
Voici une version modifiée qui génère ces marqueurs:
Usage:
L'inconvénient, tout comme une image PNG, est que tout le rectangle est cliquable. En théorie, il n'est pas trop difficile de tracer le chemin SVG et de générer un polygone MarkerShape .
la source
Vous pouvez utiliser ce code, il fonctionne très bien.
la source
Combinez un marqueur basé sur un symbole dont le chemin dessine le contour, avec un caractère «●» pour le centre. Vous pouvez remplacer le point par un autre texte («A», «B», etc.) comme vous le souhaitez.
Cette fonction renvoie des options pour un marqueur avec le texte donné (le cas échéant), la couleur du texte et la couleur de remplissage. Il utilise la couleur du texte pour le contour.
la source
J'essaie de deux façons de créer le marqueur google map personnalisé, ce code d'exécution utilisé canvg.js est la meilleure compatibilité pour le navigateur.Le code commenté n'est pas compatible avec IE11.
la source
J'ai essayé pendant longtemps d'améliorer le marqueur dessiné de vokimon et de le rendre plus similaire à celui de Google Maps (et à peu près réussi). Voici le code que j'ai obtenu:
Je l'ai également mis à l'échelle de 0,8.
la source
changez-le en chart.googleapis.com pour le chemin, sinon SSL ne fonctionnera pas
la source
En utilisant swift et Google Maps Api v3, c'était la façon la plus simple de le faire:
j'espère que cela aide quelqu'un.
la source
Ce sont des marqueurs circulaires personnalisés
small_red:
small_yellow:
small_green:
small_blue:
small_purple:
Ce sont des images png 9x9.
Une fois qu'ils sont sur votre page, vous pouvez simplement les faire glisser et vous aurez le fichier png réel.
la source
Vous pouvez également utiliser un code couleur.
la source
Parfois, quelque chose de vraiment simple, peut être répondu complexe. Je ne dis pas que l'une des réponses ci-dessus est incorrecte, mais je voudrais simplement appliquer, que cela peut être fait aussi simplement que ceci:
Je sais que cette question est ancienne, mais si quelqu'un veut simplement changer de couleur de broche ou de marqueur, consultez la documentation: https://developers.google.com/maps/documentation/android-sdk/marker
lorsque vous ajoutez votre marqueur, définissez simplement la propriété icon:
Vous avez le choix entre 10 couleurs par défaut . Si cela ne suffit pas (la solution simple), j'opterais probablement pour le plus complexe donné dans les autres réponses, répondant à un besoin plus complexe.
ps: J'ai écrit quelque chose de similaire dans une autre réponse et donc je devrais me référer à cette réponse, mais la dernière fois que je l'ai fait, on m'a demandé de poster la réponse car elle était si courte (comme celle-ci) ..
la source