1

我正在开发一个 JSP 应用程序,该应用程序检索大量要在地图上显示的多边形。

在告诉我的问题之前,我将尝试解释应用程序是如何工作的。

我的客户需要在谷歌地图上查看他的内部区域划分(一个区域是一组城市,它是一个多对多的关联)。可以通过应用程序菜单加载文件随时更改领土-城市关系。今天我们在系统中有35个地区和大约10000个协会地区城市。

我在 Fusion Tables 中有城市形状的多边形,但是当我尝试检索形状时,出现以下错误:

为一个地区加载多边形的代码:

layer = new google.maps.FusionTablesLayer({
    query:{
        select: 'geometry',
        from: {MYKEY},
        where: "NAME_CITY IN ("+listOfCities+")"
    }
});

错误:

加载资源失败:服务器响应状态为 414 (Request-URI Too Large)

我一直在寻找一种加载这些地区的方法,我已经尝试从 Java 中读取 KML 文件,并发送每个城市的坐标集,但是完成后 HTML 页面就像 300MB,它只是冻结浏览器并没有工作。所以融合表似乎是最好的方法。

由于 listOfCities 变量的大小(某些地区有大约 500 个相关城市),我发现了一些帖子,人们告诉他们使用 POST 方法来请求数据,但他们从未说过如何使用谷歌地图来做到这一点API。

我怎样才能做到这一点?有人有另一种方法来解决这个问题吗?

谢谢

4

1 回答 1

2

您必须以某种方式简化查询。POST 不是一个选项,无法更改用于查询的方法。

但这可能是您可以开始的一点: 可以随时通过应用程序菜单加载文件来更改领土-城市关系。

如 geocodezip 所建议的,您可以在表中添加另一列来存储“关系”,而不是过滤服务器上的城市并查询城市。

这可以在“文件”上传时自动完成(在这里您可以使用 POST)

新的 where 子句现在将变得简单而简短,例如:territory=35

于 2013-01-04T19:44:19.603 回答