2

我想知道是否有人可以提供一些关于谷歌地图方法的见解。目前我正在使用 google maps api v3 开发可视化。这种可视化将绘制出多边形:国家、州、邮政编码、城市等。以及地图 3 个其他标记(气球、圆圈..)。该数据由底层报表动态驱动,该报表可以应用过滤器并且可以钻取到多个级别。我遇到的最大问题是动态渲染多边形。使用 Google Maps V3 生成多边形所需的数据很大。它还需要在运行时进行大量处理。

我的想法是,因为我的可视化永远不会允许用户返回非常大的数据集(美国的所有邮政编码)。我可以使用动态创建的融合表。

假设每次运行我的报告将返回 50 个州或 50 个邮政编码。用户可以从 state>zip 进行钻取。

可视化用户的第一次运行将运行一个报告广告,它将返回状态名称和 4 个指标。是否可以根据这些信息动态创建融合表?我是否能够为要在地图上绘制的所有不同标记传递 4 个指标和格式?

第二次运行用户将从州钻到邮政编码。然后该报告将返回 50 个邮政编码和 4 个指标。是否可以删除初始表并创建另一个表来映射具有与上述相同要求的地图?提供融合表邮政编码(22054、55678....)和 4 个度量值和格式。

抱歉啰嗦了。即使在阅读了融合表文档之后,我也不能 100% 确定这一点。

4

1 回答 1

1

完全托管的解决方案

如果您可以上传完整的数据集并让 Google 进行向下钻取,您可以查看 Google Maps Engine 平台。它专为处理大量地理空间数据而设计,因此您无需进行繁重的工作。

产品页面在这里:http ://www.google.com/intl/en/enterprise/mapsearth/products/mapsengine.html

API 文档在这里:https ://developers.google.com/maps-engine/

在此处将您的数据与普通 Maps API 挂钩的详细信息:https ://developers.google.com/maps/documentation/javascript/mapsenginelayers

动态托管解决方案

但是,由于您想动态执行此操作,因此有点棘手。目前, Fusion Tables APIMaps Engine API 都不支持通过API 创建表,因此您最好的选择是以一致的模式对数据进行建模,以便您可以提前(在任一平台上)创建表,并且使用 API 按需上传和删除数据。

例如,您可以提前在 MapsEngine 中为每个向下钻取级别创建一个表(例如,一个用于状态,一个用于邮政编码)并使用batchInsert方法在运行时添加数据。

如果您更喜欢 Fusion Tables,可以使用insertimportRows

客户端解决方案

上述解决方案相当复杂,您最好使用 Maps v3 API 绘图功能(例如简单多边形)生成形状。

如果您的数据映射非常复杂,您可能会发现使用 D3.js 将数据绑定到 Google 地图更容易。这里有一个很好的例子。不幸的是,这确实意味着要研究另一个 API。

于 2013-11-09T06:40:01.553 回答