我正在使用诺基亚HERE地图,我想在地图上添加一层额外的可视化图形。由于HERE api创建的图形交互,操作和自定义的可能性有限,我想使用d3.js / SVG进行可视化。
我的直接和明显的解决方案是在地图上添加一个绝对定位的SVG元素并赋予它相同的尺寸。但当然,这种方式可以与地图互动。是否有任何解决方案可以在地图上添加叠加层,这样我就可以在保持地图的完整交互性(平移,缩放,点击)的同时将SVG放在上面?此外,它应该可以与SVG进行交互。
我知道有is a possibility可以将瓷砖服务器提供的自定义瓷砖叠加添加到HERE地图中,但这并不是我想要的。我正在寻找类似于the solution谷歌必须提供此问题的内容。一组自定义图层,它们始终与相应的地图同步,并具有自己的初始化,绘制和删除方法。 HERE地图有类似的东西吗?
答案 0 :(得分:0)
我认为你是在 nokia.maps.map.provider.CanvasProvider 课程之后。此类提供绑定到特定区域的地面叠加层,该区域提供draw()
方法。我认为attach()
方法相当于您的初始化,您可以使用update()
刷新叠加层。
根据您的使用情况,我还发现以下技术对于 SVG ,Images
和 HERE地图非常有用:
对于锚定到某个点但未调整大小的SVG标记 使用: SVG Markers
或者覆盖Marker类并使用low编写 级别图形命令,以增加渲染的灵活性 标记锚定到一个点。像这样: Defaced Marker
要添加绑定到特定区域的图片,请使用 ImageProvider 类
要从TMS(平铺地图服务)添加一系列平铺图像,请使用 ImgTileProvider 类
或者如果[zoom] [col] [row]对您和您有用 想要编写基于SVG的东西自己尝试类似this example的东西 - 它结合了 SVG具有256x256像素标记。
请注意,适用于JavaScript的HERE Maps API仅支持 SVG Tiny 。
答案 1 :(得分:0)
像旧的nokia.maps.map.provider.CanvasProvider这样的类甚至不能在这里的新v3 API上使用。
您最好的选择是Leaflet使用custom providers加载这里是地图图块。然后,您只需加载此Custom Overlay课程,即使您需要,也可以绘制D3,WebGL。 Leaflet仅从提供程序加载切片并公开一些简单的API。您不必处理任何提供商的API。
不要忘记将您的app_id
和app_code
添加到提供者类。