【问题标题】:how to select markers in the polygon from mysql如何从mysql中选择多边形中的标记
【发布时间】:2017-03-24 03:55:15
【问题描述】:

我正在 mysql 中保存标记坐标,如下图所示

我需要的是当用户绘制如下图所示的地图时

我可以从 mysql 中获取形状并选择形状中的标记并创建查询。
例如:
$query= mysql_query("SELECT location FROM table WHERE 多边形坐标");


我相信我需要使用 ajax。我正在使用谷歌地图 v3
这甚至可以做到吗?
请帮忙,知道我可以用其他方式吗??

【问题讨论】:

  • 您如何将多边形形状存储在数据库中。您使用几何 POLYGON 数据类型?或以其他方式存储坐标? “位置”是什么意思?
  • @scaisEdge 我将我的坐标保存在 mysql db 中的location col 中,我需要通过在地图上绘制多边形来找到这个位置
  • OK .. 但是如果您保存位置坐标的数据类型/格式..? ..你知道并且想要使用mysql几何扩展吗?
  • @scaisEdge 哪种数据/类型更好?我目前正在使用 varchar(256) 来保存坐标,如果几何扩展有效,我可以接受,但我不知道如何使用它...请帮助
  • 我已经更新了答案..希望有用..

标签: javascript mysql google-maps google-maps-api-3


【解决方案1】:

Google 地图不提供 GIS 功能来选择多边形内的坐标。您可以使用 mysql 的空间扩展(数据类型 GEOMETRY).. 为此,您可以进入 ..http://dev.mysql.com/doc/refman/5.7/en/spatial-extensions.html for mysql doc。

在谷歌地图中选择位置(点)的一种简单方法是使用多边形点坐标的极值得到与包含多边形顶点的矩形的坐标等价,然后执行选择

  select location  
  from my_table 
  where location_lat >= minLat_polygon
  AND location_lat  <=  maxLat_poligon
  AND location_lng  <=  maxLng_polygon
  AND location_lng  >=  minLng_polygon

【讨论】:

  • 还请记住,简单的方法不适用于凹形多边形
  • @Ergec 如果您使用 lat 的 min e 和 max 以及 lng 的 min 和 max 应该可以工作(获得 mbr 顶点)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多