草庐IT

mysql - 在 mysql 中将纬度/经度存储为整数有什么缺点?

我有一个包含+250.000.000行的大型MySQL表,我在其中存储不同类型的点和坐标。该表包含以下列:NodeId      Lat      Lon到目前为止,Lat和Lon字段都是FLOAT(10,7)类型,但我正在尝试将它们更改为INT,因为查询此表可能非常慢,即使我已经为Lat/Lon列编制了索引在一起,而Lon列本身。如果我没记错的话,MySQL在搜索时只使用单个索引。我想将两列更改为Integer的原因是,例如,我会按Lat对表进行分区,并按Lon对其进行索引,以加快搜索速度。基本上,我有两个问题正在寻找答案:1.Wouldthiskindofapproachmakem

mysql - ST_Area() 用于纬度和经度

我在MariaDB中有一个包含多个坐标的多边形:POLYGON((50.4668-6.90665,51.736070.14657,55.3032-4.52724,50.4668-6.90665))我想像这样用MariaDB计算这个多边形的面积:SELECTST_Area(ST_GeomFromText('POLYGON((50.4668-6.90665,51.736070.14657,55.3032-4.52724,50.4668-6.90665))'))上述查询的结果是15.546039738650009,这是错误的。我用this计算了多边形的面积工具,它给了我11911619274

php - 选择不同的经度和纬度值并找到它们的中值

我正在使用GoogleMapsAPIV3和jQuery创建一个Phonegap应用程序。当检测到坑洼时,应用程序将经度和纬度值分别存储在MySQL数据库中。我需要做的是选择任何相对接近且很可能是相同坑洞的值。在jQuery/PHP/SQL中有什么方法可以获取相对接近的值,找到它们的均值,然后使用该值继续处理其他一些事情吗?基本上我需要的是,一旦某个特定的坑洞被检测到5次,它就会在Googlemap上绘制出来。但是,仅在达到此阈值后。困难在于,可能会在经度和纬度值略有不同的情况下报告相同的坑洞,这取决于报告它的设备的准确性。 最佳答案

用于纬度经度语法的 MySQL 用户定义函数

我创建了一个MySQL函数来确定一组经纬度坐标是否在另一组经纬度坐标的特定范围内。但是,该函数给我一个语法错误,所以我无法测试它是否正常工作。任何帮助找出导致错误的原因将不胜感激。该函数及其描述如下:它的工作原理是将起始纬度/经度坐标传递给函数。数据库包含行targa、targb和targc,它们分别包含要比较的纬度、经度和范围。数据库中的targ列指定是否应检查此行的纬度/经度范围。CREATEFUNCTIONinrange(lat1decimal(11,7),lon1decimal(11,7))READSSQLDATARETURNSINT(1)BEGINDECLAREdistanc

mysql - 如何查询纬度/经度区域内的所有记录?

我正在寻找创建一个MySQL查询来查找世界指定区域内的所有记录。每条记录包含一个点(纬度/经度),我有指定区域的右上角(纬度/经度)和左下角(纬度/经度)。有了这些信息,我怎样才能找到合适的记录? 最佳答案 LAT1=MIN(右上纬度,左下纬度)LAT2=MAX(右上纬度,左下纬度)LON1=MIN(右上经度,左下经度)LON2=MAX(右上角经度,左下角经度)SELECTfieldsFROMpointsWHERElatBETWEENLAT1ANDLAT2ANDlonBETWEENLON1ANDLON2这样,如果您带着盒子穿过本初子

mysql - 将纬度/经度字段转换为地理空间点

我有一个包含纬度、经度和坐标列的表格。有超过500,000行。每一行的坐标字段目前都是空的。我需要做的是将纬度和经度转换为地理空间POINT()并将其放入坐标列中。这可能吗?我知道POINT可以这样插入:INSERTINTO`myTable`(`coordinates`)VALUES(GeomFromText('POINT(50.251.6)'));我基本上需要这样做,但需要从每一行的latitude和longitude中提取值。 最佳答案 这是一个较旧的问题,但我已经指出所有答案都是错误的(至少在2019年)纬度和经度必须与答案相

python - 在用户的经度/纬度 20 英里范围内查找经度/纬度

我正在开发一个应用程序,用户可以在其中搜索其位置附近的项目。当用户注册我的服务时,会获取他们的经/纬度坐标(这实际上是从邮政编码中获取的,然后通过Google查找经度/纬度坐标)。当用户添加一个项目时,也会发生这种情况,系统会要求他们提供该项目的邮政编码,然后将其转换为经度/纬度。我的问题是,我如何使用MySQL运行一个查询,该查询会在距离用户位置(比如说20英里)的范围内进行搜索,并获取20英里半径范围内的所有项目? 最佳答案 假设精度不是真正的问题(取正方形而不是圆形,并忽略地形),您可以这样做:SELECT...FROM...

mysql - SQL:根据纬度/经度查找最近的邻居

我有一张包含咖啡馆纬度/经度的表格。我想做一个SQL查询,为我提供离每家咖啡馆最近的咖啡馆。有人可以提供有关如何执行此操作的建议吗?表格基本上是这样的:咖啡馆ID+-------------------------+----------------------+----------------------+|cafe_id|gps_latitude|gps_longitude|+-------------------------+----------------------+----------------------+|011-1003|55.86649500000000000|8.

php - 如何通过纬度和经度找到最近的位置?

这是loc_coordinate表结构:下面是代码,从数据库中获取最近的地点并显示存储在数据库本身中的地点名称。prepare($sql);$stmt->execute();while($row=$stmt->fetch()){echo$row['place'];}?>为此显示的错误:Fatalerror:inC:\wamp\www\mysite\by_coor.phponline8PDOException:inC:\wamp\www\mysite\by_coor.phponline8echo$sql显示:SELECT((ACOS(SIN(3.107685*PI()/180)*SIN(

尝试从经度和纬度获取距离时出现Mysql错误

基本上我有一个在经度和纬度中设置的数据库。我已经尝试了几个小时来解决我遇到的MySql问题,但我找不到我的错误。这是我收到的错误:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'€“longitude)*PI()/180))*180/PI())*60*1.1515)*1.609344)ASdistance'atline1这里是MySql数据库查询,用于获取long和lat的距离:$res=mysql_query("S