Javascript 在google maps api v3上旋转.gif图像?
我在这个问题上找到了很多答案,但当使用.gif图像而不是标记时,这些答案并不适用。要使用.gif图像(以及动画gif),我使用代码(这很有效) //对于没有使用.gif的人来说,“optimized:false”一行是至关重要的 我现在要做的是旋转gif图像(旋转到指定的角度,而不是恒定旋转[我可以像动画gif那样旋转])。dissite设置带有“store\u ID:mkrID”的图像的ID,var mkrID是以前创建的,我可以用code marker.get(“store\u ID”)读回它,这样我就知道它已经设置好了。我无法使用document.getElementById访问图像。我也不能让谷歌地图API的任何代码工作。我发现的例子似乎是针对v2的,或者与谷歌地图自己的标记有关,而不是使用gif的自定义图像 有人能够在谷歌地图中旋转gif图像吗?标记的“store\u id”属性不允许您访问包含该图像的DOM元素。如果每个标记都有一个唯一的图标,则可以通过JQuery使用其URL抓取它,然后对其应用CSS转换:Javascript 在google maps api v3上旋转.gif图像?,javascript,image,google-maps-api-3,rotation,gif,Javascript,Image,Google Maps Api 3,Rotation,Gif,我在这个问题上找到了很多答案,但当使用.gif图像而不是标记时,这些答案并不适用。要使用.gif图像(以及动画gif),我使用代码(这很有效) //对于没有使用.gif的人来说,“optimized:false”一行是至关重要的 我现在要做的是旋转gif图像(旋转到指定的角度,而不是恒定旋转[我可以像动画gif那样旋转])。dissite设置带有“store\u ID:mkrID”的图像的ID,var mkrID是以前创建的,我可以用code marker.get(“store\u ID”)读回
$('img[src="http://www.geocodezip.com/mapIcons/boat-10-64.gif"]').css({
'transform': 'rotate(45deg)'
});
注意:这将仅适用于带有优化:false的标记
代码片段:
函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.47949,-122.083168),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
变量图像={
网址:'http://www.geocodezip.com/mapIcons/boat-10-64.gif',
尺寸:新谷歌地图尺寸(75,75),
来源:新google.maps.Point(0,0),
主播:新google.maps.Point(0,32),
scaledSize:new google.maps.Size(50,50)
};
var marker=new google.maps.marker({
位置:map.getCenter(),
地图:地图,
图标:图像,
商店标识:“mkrID”,
优化:错误
});
var rotationAngle=10;
google.maps.event.addListenerOnce(map'idle',function(){
setInterval(函数(){
$('img[src=”http://www.geocodezip.com/mapIcons/boat-10-64.gif“]”).css({
“变换”:“旋转(“+旋转角度+”度)”
});
旋转角度+=10;
}, 1000);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化)代码>
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
另一种方法是使用
请参阅此处以了解更多信息。谢谢您的回复。有趣。目前,所有图像都是相同的(但旋转角度不同),因此为了实现这一点,我可以创建具有不同名称的相同gif副本。这有点笨拙,但只要地图上没有太多的图像就可以添加GET变量(什么都不做),例如nonclumsy.gif?1
/nonclumsy.gif?2
/nonclumsy.gif?3
将帮助您复制gif。仍然不是很好,因为浏览器将单独下载所有内容,但如果不是数千个,那么可以从store_id进行轮换吗?如果在地图上加载的优化的参数超过10个标记,则复制图像不好。让我一天都很愉快
$('img[src="http://www.geocodezip.com/mapIcons/boat-10-64.gif"]').css({
'transform': 'rotate(45deg)'
});
.
.
var overlay = new google.maps.OverlayView();
overlay.draw = function() {
this.getPanes().markerLayer.id = 'markerLayer';
}
overlay.setMap(map);
.
.
var deg = 270;
document.querySelector("#markerLayer img").style.transform = 'rotate(' + deg + 'deg)';
.