Google maps 是否可以在不使用融合表的情况下向google map v3添加多边形层

Google maps 是否可以在不使用融合表的情况下向google map v3添加多边形层,google-maps,google-maps-api-3,kml,polygons,Google Maps,Google Maps Api 3,Kml,Polygons,这个问题很有描述性 我正在一个提供拍摄地点的网站上工作 该站点中的所有数据目前都存储在MySQL数据库中,包括谷歌地图的地理编码数据 我需要显示不同伦敦行政区的多边形区域,这些区域都有位置 我所有的数据都是kml文件,理想情况下我想将其存储在MySQL数据库中 我已经成功地使用了融合表来显示这些数据,但在我看来,在谷歌上复制这些数据只是为了使用融合地图层似乎很愚蠢,我可以简单地使用kml层来渲染这些数据,而不必创建融合表并从中渲染数据吗 如果是的话,是否有人可以向我提供更多信息的资源 更新: 谢

这个问题很有描述性

我正在一个提供拍摄地点的网站上工作

该站点中的所有数据目前都存储在MySQL数据库中,包括谷歌地图的地理编码数据

我需要显示不同伦敦行政区的多边形区域,这些区域都有位置

我所有的数据都是kml文件,理想情况下我想将其存储在MySQL数据库中

我已经成功地使用了融合表来显示这些数据,但在我看来,在谷歌上复制这些数据只是为了使用融合地图层似乎很愚蠢,我可以简单地使用kml层来渲染这些数据,而不必创建融合表并从中渲染数据吗

如果是的话,是否有人可以向我提供更多信息的资源

更新: 谢谢你到目前为止的回复,我想我会用更多的信息更新这个问题

我最终希望在我的地图上同时显示所有区域,然后当点击某个区域时,理想情况下,它会将您带到网站上的另一个页面,显示该特定区域的位置

我最初尝试使用KML层,但我收到错误,说我的KML无效。 KML最初存储在我的数据库表中的一个字段中,我想可能是因为我不清楚google是如何读取KML数据的

使用多边形实现起来要简单得多,因为我可以通过JSON获取这些数据,然后从中渲染多边形

我知道现在不可能有带多边形的信息窗口,但我更愿意使用点击处理程序直接跳转到另一个包含该特定区域信息的网页,而不是显示信息窗口。 或者,正如建议的那样,显示带有区域简要说明和页面链接的工具提示会更好,工具提示本身如何在地图顶部呈现

我有点担心我会达到KML的层数限制。
可以在一个图层上使用KML渲染多个多边形,还是每个可单击区域都需要一个单独的图层?

您可以使用FusionTablesLayer(如您所知)或本机google.maps.Polygon对象覆盖多边形

KmlLayer和FusionTablesLayer将它们渲染为平铺,因此对于许多多边形(如果您只需要单击事件)将更有效。一次可以在地图上显示的Kmlayer数和FusionTablesLayer上显示的Kmlayer数都有限制(但这些似乎不会给您带来问题)


还有第三方解析器可用于KML(,),它将获取您的KML并将其呈现为本机。对于许多多边形,这将比基于平铺的渲染效率低,但它确实允许鼠标悬停/鼠标悬停,并动态更改多边形的属性。

您可以使用FusionTablesLayer(如您所知)或本机google.maps.Polygon对象覆盖多边形

KmlLayer和FusionTablesLayer将它们渲染为平铺,因此对于许多多边形(如果您只需要单击事件)将更有效。一次可以在地图上显示的Kmlayer数和FusionTablesLayer上显示的Kmlayer数都有限制(但这些似乎不会给您带来问题)


还有第三方解析器可用于KML(,),它将获取您的KML并将其呈现为本机。对于许多多边形,这将比基于平铺的渲染效率低,但它确实允许mouseover/mouseout,并动态更改多边形的属性。

谷歌地图API提供了一种非常简单的绘制方法

基本示例:

var polygon = new google.maps.Polygon({
  map: your_google_map_instance,
  paths: array_of_latlng_points,
  fillColor: "#336699",
  fillOpacity: .5,
})

编辑:对于这种方法,您需要解析您的KML文件(对不起,我第一次阅读时一定错过了)。您可以将KML文件导入到

中。Google Maps API提供了一种非常简单的绘制方法

基本示例:

var polygon = new google.maps.Polygon({
  map: your_google_map_instance,
  paths: array_of_latlng_points,
  fillColor: "#336699",
  fillOpacity: .5,
})

编辑:对于这种方法,您需要解析您的KML文件(对不起,我第一次阅读时一定错过了)。您可以将KML文件导入到

,也可以尝试包含大量事件的数据层,以便在各种鼠标事件上显示工具提示、信息窗口和状态文本。 参见文档中的示例:

如果有许多多边形(其中许多多边形的实际值取决于多个因素,可以在100到1000之间的任意位置),最好使用内置层类型。最快的是在服务器上渲染的,即kml层,因为这不会在浏览器中创建数百个DOM元素,但仍会公开单击事件,以便可以为每个项目显示信息框

在更糟糕的情况下,您可以使用图像贴图实现自己的渲染,显然可以使用现有的库(如mapnik)。

您还可以尝试包含大量事件的数据层,以便在各种鼠标事件上显示工具提示、信息窗口和状态文本。 参见文档中的示例:

如果有许多多边形(其中许多多边形的实际值取决于多个因素,可以在100到1000之间的任意位置),最好使用内置层类型。最快的是在服务器上渲染的,即kml层,因为这不会在浏览器中创建数百个DOM元素,但仍会公开单击事件,以便可以为每个项目显示信息框

在更糟糕的情况下,您可以使用图像贴图实现自己的渲染,显然可以使用现有的库(如mapnik)。

我一直在将数据作为kml存储在数据库中,起初我试图从创建的记录集中读取此kml,但遇到了一个问题,它说kml无效,所以我使用了fusion表。这确实有效。是否可以使用信息窗口使多边形可点击,并且我可以在一个层上有多个可点击的多边形,我还没有达到kml层的限制,但我会在完成时达到。我宁愿只存储坐标字符串