Você pode solicitar dinamicamente imagens de ícones da API do Google Maps com os URLs:
http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FE7569
É assim: a imagem tem 21x34 pixels e a ponta do alfinete está na posição (10, 34)
E você também deseja uma imagem de sombra separada (para que não se sobreponha a ícones próximos):
http://chart.apis.google.com/chart?chst=d_map_pin_shadow
É assim: a imagem tem 40x37 pixels e a ponta do pino está na posição (12, 35)
Ao criar suas MarkerImage s, você precisa definir o tamanho e os pontos de ancoragem de acordo:
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));
Você pode adicionar o marcador ao seu mapa com:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0,0),
map: map,
icon: pinImage,
shadow: pinShadow
});
Simplesmente substitua "FE7569" pelo código de cor que você procura. Por exemplo:
Crédito devido a Jack B Nimble pela inspiração;)
Se você usa a API do Google Maps v3, pode usar,
setIcon
por exemplo,Ou como parte do init do marcador:
Outras cores:
Use o seguinte trecho de código para atualizar os marcadores padrão com cores diferentes.
fonte
Aqui está uma boa solução usando a própria API do Gooogle Maps. Nenhum serviço externo, nenhuma biblioteca extra. E permite formas personalizadas e várias cores e estilos. A solução usa marcadores vetoriais, que a API do googlemaps chama de Símbolos .
Além dos poucos e predefinidos símbolos predefinidos, você pode criar qualquer formato de qualquer cor especificando uma sequência de caminho SVG ( Spec ).
Para usá-lo, em vez de definir a opção do marcador 'ícone' como o URL da imagem, você o define como um dicionário que contém as opções de símbolo. Como exemplo, consegui criar um símbolo bastante semelhante ao marcador padrão:
Se você for cuidadoso em manter o ponto chave da forma em 0,0, evite ter que definir os parâmetros de centralização do ícone do marcador. Outro exemplo de caminho, o mesmo marcador sem o ponto:
E aqui você tem uma bandeira colorida muito simples e feia:
Você também pode criar os caminhos usando uma ferramenta visual como o Inkscape (GNU-GPL, multiplataforma). Algumas dicas úteis:
fonte
Bem, a coisa mais próxima que pude obter com o StyledMarker é esta .
A bala no meio não é tão grande quanto a padrão. A classe StyledMarker simplesmente cria esse URL e solicita à API do Google para criar o marcador .
A partir do exemplo do uso de classe utilização "% E2% 80% A2" como seu texto, como em:
Você precisará modificar o StyledMarker.js para comentar as linhas:
pois isso cortará a sequência de texto em 2 caracteres.
Como alternativa, você pode criar imagens de marcador personalizadas com base na cor padrão com as cores desejadas e substituir o marcador padrão por um código como este:
fonte
Eu tenho estendido a resposta de vokimon um pouco, tornando-o um pouco mais conveniente para mudar outras propriedades também.
Uso:
Ou ao definir um novo marcador:
fonte
Oi, você pode usar o ícone como SVG e definir cores. Veja este código
fonte
desde a versão 3.11 da API do google maps, o
Icon
objeto substituiMarkerImage
. O ícone suporta os mesmos parâmetros que MarkerImage. Até achei um pouco mais direto.Um exemplo pode ser assim:
para mais informações consulte este site
fonte
fonte
Como outros já mencionaram, a resposta de vokimon é ótima, mas infelizmente o Google Maps é um pouco lento quando existem muitos marcadores SymbolPath / SVG ao mesmo tempo.
Parece que o uso de um URI de dados é muito mais rápido, aproximadamente a par dos PNGs.
Além disso, como é um documento SVG completo, é possível usar um círculo preenchido adequado para o ponto. O caminho é modificado para que não seja mais deslocado para o canto superior esquerdo, portanto a âncora precisa ser definida.
Aqui está uma versão modificada que gera esses marcadores:
Uso:
A desvantagem, assim como uma imagem PNG, é que todo o retângulo é clicável. Em teoria, não é muito difícil rastrear o caminho SVG e gerar um polígono MarkerShape .
fonte
Você pode usar esse código que funciona bem.
fonte
Combine um marcador baseado em símbolo cujo caminho desenha o contorno, com um caractere '●' para o centro. Você pode substituir o ponto por outro texto ('A', 'B' etc.), conforme desejado.
Essa função retorna opções para um marcador com um determinado texto (se houver), cor do texto e cor de preenchimento. Ele usa a cor do texto para o contorno.
fonte
Eu tento duas maneiras de criar o marcador de mapa do google personalizado, esse código de execução usado canvg.js é a melhor compatibilidade para o navegador. O código comentado não é compatível com o IE11 com urgência.
fonte
Tentei por um longo tempo melhorar o marcador desenhado do vokimon e torná-lo mais semelhante ao do Google Maps (e praticamente bem-sucedido). Este é o código que recebi:
Também o reduzi em 0,8.
fonte
altere-o para chart.googleapis.com para o caminho, caso contrário, o SSL não funcionará
fonte
Usando o swift e o Google Maps Api v3, foi a maneira mais fácil de fazê-lo:
espero que ajude alguém.
fonte
Esses são marcadores circulares personalizados
small_red:
small_yellow:
small_green:
small_blue:
small_purple:
São imagens png 9x9.
Quando estiverem na sua página, basta arrastá-los e você terá o arquivo png real.
fonte
Você também pode usar o código de cores.
fonte
Às vezes, algo realmente simples, pode ser respondido complexo. Não estou dizendo que nenhuma das respostas acima esteja incorreta, mas eu aplicaria apenas que isso pode ser feito de maneira simples:
Sei que essa pergunta é antiga, mas se alguém quiser alterar a cor do alfinete ou do marcador, consulte a documentação: https://developers.google.com/maps/documentation/android-sdk/marker
quando você adiciona seu marcador, basta definir a propriedade do ícone:
Existem 10 cores padrão para você escolher . Se isso não for suficiente (a solução simples), eu provavelmente usaria o mais complexo dado nas outras respostas, atendendo a uma necessidade mais complexa.
ps: Eu escrevi algo semelhante em outra resposta e, portanto, devo me referir a essa resposta, mas na última vez que fiz isso, fui solicitado a postar a resposta, pois era tão curta (como esta).
fonte