【发布时间】:2012-08-28 15:09:25
【问题描述】:
我在 Excel 工作簿中有邮政编码级别的数据,理想情况下,我希望在我感兴趣的区域的另一张纸上制作一张地图。我的数据集中的邮政编码应在该地图中突出显示。我正在使用 Excel 2010,之前没有使用 GIS 的经验,但有丰富的 C#、Java 经验。关于如何实现这一目标的任何想法?我寻找开源插件,但没有找到很多。还有其他方法可以实现我想要的吗?
【问题讨论】:
我在 Excel 工作簿中有邮政编码级别的数据,理想情况下,我希望在我感兴趣的区域的另一张纸上制作一张地图。我的数据集中的邮政编码应在该地图中突出显示。我正在使用 Excel 2010,之前没有使用 GIS 的经验,但有丰富的 C#、Java 经验。关于如何实现这一目标的任何想法?我寻找开源插件,但没有找到很多。还有其他方法可以实现我想要的吗?
【问题讨论】:
我使用Topo.ly。您可以从 Excel 中复制所有邮政编码并将其粘贴到 Topo.ly,它会在 Google 地图上绘制它们。它还托管您的地图,因此您可以保存并稍后返回,或与他人共享。
【讨论】:
您可以为非 gis 用户查看该解决方案: http://www.esri.com/software/esri-maps-for-office
它需要 Office 2010(在您的情况下没问题),它基于 privative GIS 软件(无 FLOSS)。在视频部分有一些示例。
【讨论】:
这可能是一个很好的起点。您将需要一些 WPF 知识
Bing Maps Windows Presentation Foundation (WPF) Control, Version 1.0
然后使用 VSTO 可以将其集成到 Excel Using WPF Controls in Office Solutions
示例 WPF 应用程序是 @Integrating Bing Maps With WPF
编辑:
在非 WPF 解决方案上没有找到很多,但您可以尝试一下
【讨论】:
为了将来参考或有类似问题的人,您可以使用名为 Funfun 的 Excel 插件在 Excel 2016 中创建数据图。我在这里做了两个示例。
如您所见,屏幕截图的中间部分有一些代码。那是因为 Funfun 允许您直接在 Excel 中编写和运行 JavaScript 代码,而且 JavaScript 代码可以使用存储在工作表中的数据。使用 JavaScript 的能力意味着您可以使用 HighCharts.js 或 D3.js 等第三方库来绘制数据图等图表。在这两个示例中,我实际上使用了 highmaps,它是 HighCharts.js 库的一部分。 highmaps.js 已经有不同的模板,从世界地图到不同国家的特定地图。我相信你能找到你需要的地图。
Funfun 还有一个在线编辑器,您可以在其中使用您的数据测试您的 JavaScript 代码。您可以在下面的链接中查看上述示例的详细代码。
https://www.funfun.io/1/#/edit/5a5c9a50404f66229bda3ae0
https://www.funfun.io/1/#/edit/5925036104ce702ccfb22b0e
如果您对在线编辑器中获得的结果感到满意,您可以使用上面的 URL 轻松地将结果加载到 Excel 中。当然,首先您需要从 Insert - My add-ins 中插入 Funfun 插件。以下是一些屏幕截图,展示了如何执行此操作。
披露:我是 Funfun 的开发者
【讨论】: