当前位置: 首页 > 知识库问答 >
问题:

有没有可能在不使用融合表的情况下将多边形层添加到谷歌地图v3

咸承教
2023-03-14

这个问题很有描述性。

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

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

我需要显示有位置的不同伦敦区的多边形区域。

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

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

如果是的话,有没有人可以给我提供更多信息的资源?

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

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

我最初尝试使用KML层,但我得到的错误说我的KML是无效的。KML最初存储在我的数据库表中的一个字段中,我想可能是由于我不理解谷歌是如何读取KML数据的。

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

我知道现在不可能有多边形的信息窗口,但我更愿意直接跳转到另一个网站页面,使用点击处理程序,而不是显示信息窗口。或者作为建议显示一个工具提示与该地区的简要描述和链接到页面会更好,如何工具提示本身,是否有可能在地图上呈现?

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

共有3个答案

韩征
2023-03-14

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

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

在更糟糕的情况下,您可以使用图像贴图实现自己的渲染,显然可以使用现有的库(如mapnik)。https://developers.google.com/maps/documentation/javascript/maptypes#ImageMapTypes

柴泰平
2023-03-14

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

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

还有第三方解析器可用于KML(geoxml3,geoxml-v3),它将获取您的KML并将其呈现为本机google.maps.多边形对象。对于许多多边形,这将比基于磁贴的渲染效率低,但它允许鼠标悬停/鼠标输出,并动态更改多边形的属性。

谭琛
2023-03-14

GoogleMapsAPI提供了一种非常简单的方法来绘制多边形。

基本示例:

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

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

 类似资料:
  • 我想用多边形类和一组lat/lng坐标在谷歌地图上画一个城区区域。 OpenStreetMap为我提供了所需的所有数据——如果我键入一些地区名称,我可以获得OSM XML格式的有用数据,例如拉脱维亚里加“Vecmilgravis”地区的OSM绘制多边形,以及OSM XML格式的数据。 问题是所有这些节点都是按某种奇怪的顺序排序的,因此如果我只提取所有和对,并为Google Maps多边形类创建一个

  • 这款设备运行的是Android4.2.2系统,谷歌官方GCM文档显示: 运行Android4.0.4或更高版本的设备不需要谷歌帐户。 但是这些文档与使用的新版GCM相关(对我来说不是一个选项) 基本上,我的问题是: 有没有可能使GCM在没有Google帐户的情况下工作, 使用旧的、不推荐使用的GCM帮助程序库? 注意:我不能在设备上创建Google帐户(这是一个要求) 如果这是不可能的,那么请建议

  • 我想实现喜欢用户可以从我们的应用程序在谷歌地图绘制一个区域。然后当他回来的时候,然后应该加载他/她以前画的数据。 我用了两种方法。一是,, > 使用javascript在googlemap中绘制多边形 https://developers.google.com/maps/documentation/javascript/drawinglayer 使用谷歌地图api数据层<代码>http://jsf

  • 我正在google maps android中开发一个监控地理围栏的应用程序,但是在Geofence Builder类中我们只能设置圆形区域,是不是他们的任何类我们都可以使用多边形来监控地理围栏,请帮助我谢谢和问候

  • 我正在使用geojson数据处理Google地图中的图层。 我现在有一个有四个不同多边形的图层,当你点击它们时,它们会从灰色变成绿色。但是当我再次点击时,它不会变回灰色,这就是点击功能的目的。 在我的情况下,它适用于我的编辑器,https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/。这是完整的代码段。 我修好了!!我更改了几行的位置,并将其设置为false或tru

  • 我想在谷歌课堂的成绩册中创建一个作业,然后自动评分(不需要学生上交作业)。