У меня есть анимация d3, которую я хочу добавить к пользовательскому маркеру карты, созданному с помощью наложения. Поскольку я настроил маркеры, у них есть класс, на который я могу настроить таргетинг, но они привязаны к карте/наложению не svg, поэтому я не уверен, как их выбирать.Добавление пользовательской анимации в пользовательский маркер карты в d3
Вот создание карт и пользовательских маркеров:
var map = new google.maps.Map(mapCanvas, mapOptions)
overlay = new CustomMarker(
myLatlng,
map,
{
marker_id: '1'
}
);
Какие результаты в классе маркера. Вот неисправная попытка добавить свои элементы SVG к этому маркеру:
svg.selectAll(".marker")
.data(locationsArray)
.enter()
.append("circle")
.attr("stroke-width", 20)
.attr("r", 20)
// .attr("cx", function(d) { return d[1] })//position of pulse on canvas
// .attr("cy", function(d) { return d[0] })
.attr("class", function(d) {
if (d[3] >= 30 && d[3] < 60) {
d[2] == 1 ? result = "smallBadVibe" :
d[2] == 2 ? result = "smallNeutralVibe" : result = "smallGoodVibe";
return result;
}
else if (d[3] >=60 && d[3] < 90) {
d[2] == 1 ? result = "mediumBadVibe" :
d[2] == 2 ? result = "mediumNeutralVibe" : result = "mediumGoodVibe";
return result;
}
else if (d[3] >= 90) {
d[2] == 1 ? result = "largeBadVibe" :
d[2] == 2 ? result = "largeNeutralVibe" : result = "largeGoodVibe";
return result;
}
})
Я думаю, что, может быть, я должен ввести в нечто иное, чем svg.select, так как маркер не на моем SVG, но не знаю, что тип. В случае, если это имеет значение здесь анимация я подаю:
function cyanBigPulse() {
var circle = svg.selectAll(".largeNeutralVibe");
(function repeat() {
circle = circle.transition()
.attr("fill", "rgba(0,255,255, .35)")
.attr("stroke", "rgba(0,255,255,1)")
.duration(20)//circle close
.attr("stroke-width", 0.5) //how thick is the stroke at min size
.attr("r", 5) //inner circle radius
.transition()
.duration(2000)//circle open
.attr('stroke-width', 0.5) //how thick is the stroke at full size
.attr("r", 150) //circle outer radius
.ease('sine')
.each("end", repeat)
})();
}
Примечание: Я буду присоединив несколько кругов различных точек на карте, и буду перебором некоторых данных, чтобы создать гораздо больше маркеров, но для теперь я должен знать, как добавить этот маркер, прежде чем применять его в более широком масштабе. Заранее спасибо за помощь.
Я забыл сказать счастливое 4 июля. – justin
Вы накладываете SVG на карту? Глядя на это [пример] (https://google-developers.appspot.com/maps/tutorials/customizing/js/markers), похоже, что пользовательские маркеры нарисованы на карте в '' тегах. У вас есть jsFiddle или plunker с кодом, на который мы можем взглянуть? – Mark
http://plnkr.co/edit/UEW9759a3iwtCeZvsU9R?p=preview Я скомпилировал файлы, с которыми я работаю, в плункер. Спасибо за вашу помощь. В файле у меня есть два тестовых импульса без заданных координат x или y в надежде, что добавление его к маркеру будет установлено. – justin