【问题标题】:Finding markers from a fusion table within a polygon从多边形内的融合表中查找标记
【发布时间】:2014-03-06 13:29:08
【问题描述】:

我有一个融合表,其中填充了地址,而不是纬度/经度坐标。谷歌已经为我完成了地理编码,所以我无法访问地理编码数据。这个融合表是我地图上的一层,它显示了每个地址的标记。

我正在使用 DrawingManager 来允许用户绘制多边形。一旦多边形完成(即在多边形完成回调中),我希望能够确定融合表中的哪些标记位于多边形内。

如果我可以访问坐标,那么我可以使用 ST_INTERSECTS 执行此操作,但我无权访问它。由于它已经由 Google 进行地理编码,我认为没有理由使用地理编码 API 进行额外查询来获取坐标。

那么有没有办法确定融合表中的哪些标记位于多边形内?

【问题讨论】:

    标签: google-maps-api-3 google-fusion-tables


    【解决方案1】:

    当你的意思是ST_INTERSECTS FusionTablesAPI 的功能时:

    您不需要坐标,当特定列被标记为位置列并且已经被地理编码时,您可以在查询中使用此列(即使您有坐标,当您使用 API,因为 ST_INTERSECTS 需要列名,而不是几何)。

    另一个问题是:FusionTablesAPI 仅支持 ST_INTERSECTSCIRCLERECTANGLE 的几何图形

    所以答案是:否

    【讨论】:

    • 感谢ST_INTERSECTS 的澄清。根据this answer,有一种方法可以使用光线投射在多边形内找到一个点。所以我想我必须直接使用地理编码 API 来做我想做的事,对吗?
    • 地理编码 API 仅对地址进行地理编码,仅此而已。当您想通过使用 Javascript-API 来实现它时,请使用 google.maps.geometry.poly.containsLocation()
    • 如果您不希望有很多点结果,您可以创建一个包含多边形边界框的矩形,将其与 st_intersects 一起使用,然后使用多边形中的一个点过滤掉误报在客户端上进行测试(就像上面评论中提到的那样)
    猜你喜欢
    • 2012-07-23
    • 2014-03-24
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多