如何搜索某个国家/地区的餐厅? [英] How do I search for restaurants in a region in a country?

查看:19
本文介绍了如何搜索某个国家/地区的餐厅?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Postgis中有一些餐厅的信息:

Last name
longitude
latitude
address.

地址被分成几个带有外键通知的表,这样我就有了一个国家表、一个地区表等。

我想知道一个国家(如法国)某个地区有哪些餐厅。

所以我有两个解决方案:

在国家/地区表中搜索,然后在区域中搜索,然后显示附加到该区域的餐厅列表 或 使用Postgis多边形系统。

我想听听您对哪个最有效/最相关的意见。

目前我使用这个查询(在我看来可以改进):

      "select  *
 from data where  ST_Intersects(st_point(lon, lat) , 
" +
                        " ST_GeomFromGeoJSON('
" +
                       " %polygone* 
"+
                        "')
" +
                        ") = 'true' order by name";

此处具有点列表的Polygon对象(太长,无法在此问题中写出,我将其命名为%Polygon)

谢谢您。

推荐答案

您正在构建点和面-而不是具有正确的几何列-这效率很低。

您尚未讨论空间索引,因此交集操作将会很慢。

您还没有指定多边形的复杂性:如果它们有许多许多顶点,相交操作将会很慢。可以通过先细分它们来改进这一点。

因此,从技术上讲,使用索引并最终细分的多边形可以使此类操作变得快速。

,地址通常并不完美。有些可能是不完整的,有些可能是错误的(例如:有人输入了邻近城镇的名称)。按几何图形选择将得到与按属性选择不同的结果,因此您可能需要在决定之前分析数据质量,并仔细比较这两种方法之间的结果差异。

这篇关于如何搜索某个国家/地区的餐厅?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆