我正在开发一个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,它只是冻结浏览器,并没有工作。所以Fusion Tables似乎是最好的方法。
我发现了一些帖子,人们告诉他们使用POST方法来请求数据,因为listOfCities变量的大小(一些地区有大约500个城市相关联),但他们从未说过如何使用Google Maps API。
我该怎么做?有人有另一种方法可以解决这个问题吗?
谢谢
答案 0 :(得分:2)
您必须以某种方式简化查询。 POST不是一个选项,无法更改用于查询的方法。
但这可能是你可以开始的一点: 通过应用程序菜单加载文件,可以随时更改领土 - 城市关系。
您可以按照geocodezip的建议,在表格中添加另一列,而不是过滤服务器上的城市和查询城市。
这可以在上传“文件”时自动完成(此处可以使用POST)
新的where-clause现在简单而简短,例如: territory=35