Javascript 将图像放置在Planetary.js的位置

Javascript 将图像放置在Planetary.js的位置,javascript,canvas,d3.js,svg,Javascript,Canvas,D3.js,Svg,我正在使用插件@planetaryjs.com(&d3)将地球仪渲染到屏幕上。 教程展示了如何使用canvas命令在特定位置添加“ping”,这非常好 但我想在一个特定的lat/lng上添加一个图像,然后用3d变换显示,这样看起来就像是在和行星一起旋转 不幸的是,我不知所措——我尝试导入SVG和png图像,但只能让它们以“2d”显示,并且不能随行星旋转 有人能推荐任何插件或起点来获得此功能吗?我一直在网络上寻找类似的东西,但什么都不存在,所以我制作了一个插件,可以直接与planet.js一起使用

我正在使用插件@planetaryjs.com(&d3)将地球仪渲染到屏幕上。 教程展示了如何使用canvas命令在特定位置添加“ping”,这非常好

但我想在一个特定的lat/lng上添加一个图像,然后用3d变换显示,这样看起来就像是在和行星一起旋转

不幸的是,我不知所措——我尝试导入SVG和png图像,但只能让它们以“2d”显示,并且不能随行星旋转


有人能推荐任何插件或起点来获得此功能吗?

我一直在网络上寻找类似的东西,但什么都不存在,所以我制作了一个插件,可以直接与planet.js一起使用

它仍在github上更新,但基本要点如下。 使用main planet.projection()将lat、lng转换为投影坐标

下面是基本用法

var coords = planet.projection([(object.lng), object.lat])  
var img = new Image()
img.src = "/char.png";

var geoangle = d3.geo.distance([object.lng, object.lat],[-
planet.projection.rotate()[0], -planet.projection.rotate()[1]]);

//geo angle = radians (around 90 degrees)
if (geoangle > 1.57079632679490)
{
    //Behind Sphere > 90 degrees
} else {
   context.drawImage(img, coords[0] ,coords[1], 50 ,50)
}
上面是我制作的插件的一个片段,我基本上复制了已经存在的“ping”插件,并更改了代码以创建对象/图像

链接到github回购: