我有一个区域表,所有区域都是x,y到xy和名称
我希望能够根据一组坐标(x,y)进行搜索和查找,如果它在一个区域的10米范围内。
这些区域所在的地图范围是-6000,-6000到6000,6000。
表中的列是:Name,key,cox1,cox2,coy1,coy2。 从我可以看出,第一个坐标是最低的数字。
它们总是整数,所以不用担心小数点,例如-3918,-4017,-3069,-2970。
可能有多个区域重叠,在这种情况下,我需要返回所有这些区域。
这将从网页传递。
一些例子
cox1,cox2,coy1,coy2
-3918,-4017,-3069,-2970
-3905,-3962,-2393,-2330
-683,-683,-1459,-1459
4336,4243,-4412,-432
SELECT RegionNames.Name FROM RegionNames
WHERE ( -3500 between RegionNames.cox2 and RegionNames.cox1 )
AND ( -3000 between RegionNames.coy1 and RegionNames.coy2 )
答案 0 :(得分:0)
e.g。假设你有这样的地区:
Name fromX fromY toX toY
NorthEast 0 0 6000 6000
NorthWest -6000 0 -1 6000
等
你有这样的城市:
Name X Y
MyCity -2000 550
尝试:
Select city.name, region.name from city
join region on ((city.X between region.fromX and region.toX)
and (city.y between region.fromY and region.toY))