将SVG叠加添加到nokia HERE地图

时间:2014-01-25 22:48:39

标签: svg d3.js maps here-api

我正在使用诺基亚HERE地图,我想在地图上添加一层额外的可视化图形。由于HERE api创建的图形交互,操作和自定义的可能性有限,我想使用d3.js / SVG进行可视化。

我的直接和明显的解决方案是在地图上添加一个绝对定位的SVG元素并赋予它相同的尺寸。但当然,这种方式可以与地图互动。是否有任何解决方案可以在地图上添加叠加层,这样我就可以在保持地图的完整交互性(平移,缩放,点击)的同时将SVG放在上面?此外,它应该可以与SVG进行交互。

我知道有is a possibility可以将瓷砖服务器提供的自定义瓷砖叠加添加到HERE地图中,但这并不是我想要的。我正在寻找类似于the solution谷歌必须提供此问题的内容。一组自定义图层,它们始终与相应的地图同步,并具有自己的初始化,绘制和删除方法。 HERE地图有类似的东西吗?

2 个答案:

答案 0 :(得分:0)

我认为你是在 nokia.maps.map.provider.CanvasProvider 课程之后。此类提供绑定到特定区域的地面叠加层,该区域提供draw()方法。我认为attach()方法相当于您的初始化,您可以使用update()刷新叠加层。

根据您的使用情况,我还发现以下技术对于 SVG Images HERE地图非常有用:

  1. 对于锚定到某个点但未调整大小的SVG标记 使用: SVG Markers

  2. 或者覆盖Marker类并使用low编写     级别图形命令,以增加渲染的灵活性     标记锚定到一个点。像这样: Defaced Marker

  3. 要添加绑定到特定区域的图片,请使用 ImageProvider

  4. 要从TMS(平铺地图服务)添加一系列平铺图像,请使用 ImgTileProvider

  5. 或者如果[zoom] [col] [row]对您和您有用     想要编写基于SVG的东西自己尝试类似this example的东西 - 它结合了     SVG具有256x256像素标记。

  6. 请注意,适用于JavaScript的HERE Maps API仅支持 SVG Tiny

答案 1 :(得分:0)

像旧的nokia.maps.map.provider.CanvasProvider这样的类甚至不能在这里的新v3 API上使用。

您最好的选择是Leaflet使用custom providers加载这里是地图图块。然后,您只需加载此Custom Overlay课程,即使您需要,也可以绘制D3WebGL。 Leaflet仅从提供程序加载切片并公开一些简单的API。您不必处理任何提供商的API。

不要忘记将您的app_idapp_code添加到提供者类。