Я решил эту проблему, используя значки динамических диаграмм Google, которые позволяют размещать число в булавке, указывающее, что в этой точке есть несколько маркеров. По сути, вы вызываете их URL-адрес «диаграммы» с некоторыми параметрами запроса, и они возвращают вам ваш пронумерованный значок, который вы затем можете поместить/установить в существующем маркере, который у вас есть на этом месте.
var markerImage = createMarkerImage(numDuplicates + 1);
existingMarker.setIcon(markerImage);
function createMarkerImage(text)
{
var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + text + "|FF8985|000000",
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
return pinImage;
}
ПРИМЕЧАНИЕ. В этом решении используется устаревший API Google, дата окончания которого не указана.
«Важно: с 20 апреля 2012 года часть графических изображений Google Chart Tools официально устарела. Она будет продолжать работать в соответствии с нашей политикой прекращения поддержки».
ОБНОВЛЕНИЕ:
Я отказался от приведенного выше решения, поскольку оно устарело (и оказывает влияние на производительность многих маркеров) вместо того же конечного эффекта, что и пронумерованный маркер, но с использованием путь координат, определяющий многоугольник в форме маркера вместе с .png
для тени маркера. Единственная причина, по которой я использовал свой собственный маркер, заключается в том, что мне нужно было создать отдельные маркеры, каждый с уникальным цветом (и, возможно, со встроенным номером), которые ванильные маркеры не поддерживают.
person
johntrepreneur
schedule
25.01.2013