无法使用Mysql点类型查询检索所有点

4
我在使用MySQL中的空间数据类型点(point)时遇到了问题。我在MySQL中有一个名为“tasks”的表,其中存储以下信息。
Id       Int(11)              主键
Name        Varchar(50) 
Street      Varchar(50) 
City        Varchar(50) 
Province    Varchar(50) 
Country     Varchar(50) 
Lat         decimal(15,12)  
Long        decimal(15,12)  
latLong     point   
以下是样本数据。
  INSERT INTO `tasks` 
   (`id`, `name`, `street `, `city`, `province`, `postalCode`, `lat`, `lng`, `latLong`) VALUES
   (202, 'task1', ' sursagar ', 'vadodara', 'Gujarat', 'India', 22.301887300000, 73.205468800000, 0x0000000001010000006288d349364e5240cfbf5df6eb4c3640),
   (203, 'task2', ' madvi ', 'vadodara', 'Gujarat', 'India', 22.302665500000, 73.204284700000, 0x000000000101000000af642200134d5240a320787c7b4d3640),
   (204, 'task3', 'panigat ', 'vadodara', 'Gujarat', 'India', 22.300475500000, 73.222063499999, 0x00000000010100000047e7fc14c74d5240795be9b5d94c3640),
   (229, 'taks4', 'Akota Stadium Road', 'Vadodara', 'Gujarat', 'India', 22.297802300000, 73.166531300000, 0x000000000101000000aad0e572a84a5240702c83c53c4c3640);

我们有一个iPhone应用程序,它向我发送两个不同的纬度和经度值,我们需要传递所有在这些纬度和经度之间的地点。例如,他们正在传递以下2个纬度和经度值,我需要找出它们之间的所有地点。 Point A:22.327847,73.172894 Point B:22.272259,73.227825
附上相应的Google地图截图。
现在为了获取数据,我正在编写以下查询。
     SELECT `task`.* 
     FROM `tasks` AS `task` 
     WHERE `task`.`isDeleted` = '0' 
     AND MBRContains(GeomFromText('Polygon((73.172894 22.327847), (73.227825 22.272259))'),latLong) 
     ORDER BY task.created DESC  

我无法获得给定点A和点B之间的所有点。我可以看到我的存储点在这些点之间,但无法获取所有值。我只得到一个结果值。我的查询出了什么问题或者我应用的逻辑是错误的?

有人能帮忙解决吗?

1个回答

0
根据文档,我将您的多边形参数更改如下。
 SELECT `task`.* 
 FROM `tasks` AS `task` 
 WHERE `task`.`isDeleted` = '0' 
 AND MBRContains(GeomFromText('Polygon((73.172894 22.327847, 73.227825 22.272259))'),latLong) 
 ORDER BY task.created DESC  

希望这能对你有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接