0

我想创建像谷歌地图这样的应用程序,其中存在缩放和平移,标记没有被缩放,但它们转换到各自的位置。

我的项目需要在 Pdf/image/svg 文件上绘制 JSON 数据(x,y 坐标)。当缩放数据时,只有 pdf/image/svg 文件应该缩放并且数据应该转换到它们各自的位置但是不应该缩放。

我从来没有找到任何相关的例子。所有示例都像画布或 svg 元素上的绘图数据..等

我的查询是.... 这种应用程序可以用 Canvas + javascript 创建吗?还是需要使用任何其他语言或任何插件?

4

1 回答 1

0

你当然可以。

我设计了一个映射系统,可以将 json(即 geoJson)加载到画布上。符号等。我故意不缩放,所以这应该是你喜欢做的。

实际上,您所做的一切都是设备单位(像素)和现实世界单位(逻辑)。

我将所有数据存储在逻辑单元中,并在绘制时将它们转换为设备单元。由于坐标系之间存在差异(屏幕使用左上角为 0,0 ),您必须计算两者之间的偏移量。添加比例,您可以缩放。

初始比例是屏幕宽度/数据宽度。使用单个缩放值并按其缩放 X 和 Y 以避免缩放时拉伸。

存储顶部、左侧和比例后,您可以通过以下方式将任何逻辑单位转换为设备单位:

设备点 x =(逻辑点 x - 左)* 比例

设备点 y =(顶部 - 逻辑点 y)* 比例 // 笛卡尔系统校正!

并返回到逻辑单元

逻辑点 x = (设备点 x/刻度) + 左

逻辑点 y = top - (设备点 y/scale) // 笛卡尔系统校正!

希望有帮助!

于 2013-07-31T19:44:39.647 回答