使用Planetary.js将图像放置在适当位置
Place image at location with Planetary.js
我正在使用插件@planetaryjs.com(&d3)将地球仪渲染到屏幕上。教程展示了如何使用画布命令在特定位置添加"ping",这很好。。。
但我想在一个特定的lat/lng中添加一张图像,并通过3d变换进行显示,这样它看起来就像是在和地球一起旋转。。。
不幸的是,我不知所措——我尝试过导入SVG和png图像,但只能将它们显示在"2d"中,并且不能随地球旋转。
有人能建议任何插件或起点来获得此功能吗?
我一直在网上寻找这样的东西,什么都不存在,所以我做了一个插件,可以直接与planetary.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回购链接:https://github.com/Sheaffy/planetary.js-add-objects-plugin
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 根据页面的位置突出显示文本中的字符
- 传单缩放控制位置错误
- 如何将返回的值应用于多个不同位置的多个选择器
- 使用Planetary.js将图像放置在适当位置