我很困惑,也很累,无法找到上面的把戏。实际上,我有一个数据库表,其中包含六个字段 id、Sratlatitude、Startlongitude、EndLatitude、EndLongitude 和用户名。现在我想在数据库中查询
SELECT * FROM LOCATIONS(table name) WHERE USERS BETWEEN STARTING POINT(InputedStartlatitude and InputedStartlongitude) AND ENDING POINT(InputedEndlatitude and InputedEndlongitude);例如:USERXXX 输入起点(InputedStartlatitude = 18.9647 和 InputedStartlongitude = 72.8258)= 孟买和终点(InputedEndlatitude = 18.9647 和 InputedEndlongitude = 72.8258)= 德里。现在他想使用 Inutedlatitudes 和 Inputedlongitudes 来搜索这条输入路线(行驶方向)之间有多少用户。搜索查询将触发到 mysql 数据库,并从存储的孟买到德里之间的开始和结束纬度和经度进行比较。
我为此找到了一种解决方案,例如对数据库进行查询:
SELECT * FROM lOCATIONS(tablename) WHERE (InputStartLatitude >= StartLatitude and IntartLongitude >= StartLong) and (InputEndLatitude <= EndLatitude and InuteEndLongitude <= EndLongitude);
但是我在上面的查询中遇到了一些问题。下面是一些地方的坐标。请看:
开始和结束坐标为红色。起点是:Porbandar,终点是:Mumbai。现在的问题是,我面临的问题是,当我尝试搜索 Porbandar 到 Mumbai 之间的城市时,由于我的查询,并非所有城市都实际位于行驶方向。我在我的查询中只调用了那些城市,它们是如何大于开始经纬度和小于结束经纬度的。但这里孟买的纬度和经度几乎低于所有城市。那么我怎样才能进行正确的搜索查询呢?
希望我已经很好地解释了上述情况。
任何回应都会对我很有帮助。
我在客户端使用 php-mysql 作为后端和 android。