我正在使用谷歌地图 API V3 并在折线上创建了一些图标动画。
我的代码
var line;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(2.881766, 101.626877),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var lineCoordinates = [
new google.maps.LatLng(2.86085, 101.6437),
new google.maps.LatLng(2.87165, 101.6362),
new google.maps.LatLng(2.880783, 101.6273),
new google.maps.LatLng(2.891517, 101.6201),
new google.maps.LatLng(2.8991, 101.6162), new google.maps.LatLng(2.915067, 101.6079)
];
map.setCenter(lineCoordinates[0]);
var lineSymbol = {
path: google.maps.SymbolPath.CIRCLE,
scale: 6,
strokeColor: '#393'
};
line = new google.maps.Polyline({
path: lineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
icons: [{
icon: lineSymbol,
offset: '100%'
}],
map: map
});
for (var i = 0; i < line.getPath().getLength(); i++) {
var marker = new google.maps.Marker({
icon: {
url: "https://maps.gstatic.com/intl/en_us/mapfiles/markers2/measle_blue.png",
size: new google.maps.Size(7, 7),
anchor: new google.maps.Point(4, 4)
},
position: line.getPath().getAt(i),
title: line.getPath().getAt(i).toUrlValue(6),
map: map
});
}
animateCircle();
}
var id;
function animateCircle() {
var count = 0;
id = window.setInterval(function () {
count = (count + 1) % 200;
var icons = line.get('icons');
icons[0].offset = (count / 2) + '%';
line.set('icons', icons);
if (line.get('icons')[0].offset == "99.5%") {
icons[0].offset = '100%';
line.set('icons', icons);
window.clearInterval(id);
}
}, 20);
}
google.maps.event.addDomListener(window, 'load', initialize);
我在折线上有 6 个点。一旦动画标记到达该点,我想在每个点创建一个标记。
任何人都可以在这种情况下帮助我。
谢谢你。