2013-01-04 28 views
1

我正在开发一个JSP应用程序,该应用程序检索许多要在地图上显示的多边形。检索Fusion Tables数据的问题 - Google Maps API

我会在告诉我的问题之前尝试解释应用程序的工作原理。

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

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

代码加载多边形的一个领域:

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

错误:

Failed to load resource: the server responded with a status of 414 (Request-URI Too Large)

我正在寻找一种方式为L长期以来,我一直试图从Java中读取KML文件,并为每个城市发送一组坐标,但HTML页面在完成时就像300MB一样,并且只是冻结了浏览器而没有工作。所以Fusion Tables似乎是最好的方法。

我发现那里的人都告诉使用POST方法来请求数据,因为变量listOfCities的大小(某些地区有相关的约500个城市)的几个职位,但他们从来没有说该怎么办呢使用Google Maps API。

我该怎么做?任何人有另一种方法来解决这个问题?

谢谢

+2

你能只需添加一个包含“地区”代码的列,然后使用该列中相应的代码查询表中的记录? – geocodezip

回答

2

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

但是,这可能是一个可以开始的地方: 通过通过应用程序菜单加载文件,可随时更改地区 - 城市关系。

除了在您的服务器上过滤城市和查询城市,您可以在表格中添加另一列,在那里存储geocodezip建议的“关系”。

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

新的where子句将是简单和短期现像如:territory=35

+0

感谢您的回答Dr. Molle,但是这种关系是多对多的,一些城市与多个领土相关联,在这些情况下,您知道一种将其存储在Fusion Tables中的方法吗? – Diogo

+1

Fusion Tables支持LIKE,您可以存储由某个分隔符分隔的地区列表。另一种选择是为每个地区创建列号 –

+0

感谢Dr. Molle的帮助,我将实施此方法。 – Diogo

相关问题