我有一个包含+250.000.000行的大型MySQL表,我在其中存储不同类型的点和坐标。该表包含以下列:NodeId Lat Lon到目前为止,Lat和Lon字段都是FLOAT(10,7)类型,但我正在尝试将它们更改为INT,因为查询此表可能非常慢,即使我已经为Lat/Lon列编制了索引在一起,而Lon列本身。如果我没记错的话,MySQL在搜索时只使用单个索引。我想将两列更改为Integer的原因是,例如,我会按Lat对表进行分区,并按Lon对其进行索引,以加快搜索速度。基本上,我有两个问题正在寻找答案:1.Wouldthiskindofapproachmakem
我在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
我正在使用GoogleMapsAPIV3和jQuery创建一个Phonegap应用程序。当检测到坑洼时,应用程序将经度和纬度值分别存储在MySQL数据库中。我需要做的是选择任何相对接近且很可能是相同坑洞的值。在jQuery/PHP/SQL中有什么方法可以获取相对接近的值,找到它们的均值,然后使用该值继续处理其他一些事情吗?基本上我需要的是,一旦某个特定的坑洞被检测到5次,它就会在Googlemap上绘制出来。但是,仅在达到此阈值后。困难在于,可能会在经度和纬度值略有不同的情况下报告相同的坑洞,这取决于报告它的设备的准确性。 最佳答案
我创建了一个MySQL函数来确定一组经纬度坐标是否在另一组经纬度坐标的特定范围内。但是,该函数给我一个语法错误,所以我无法测试它是否正常工作。任何帮助找出导致错误的原因将不胜感激。该函数及其描述如下:它的工作原理是将起始纬度/经度坐标传递给函数。数据库包含行targa、targb和targc,它们分别包含要比较的纬度、经度和范围。数据库中的targ列指定是否应检查此行的纬度/经度范围。CREATEFUNCTIONinrange(lat1decimal(11,7),lon1decimal(11,7))READSSQLDATARETURNSINT(1)BEGINDECLAREdistanc
我正在寻找创建一个MySQL查询来查找世界指定区域内的所有记录。每条记录包含一个点(纬度/经度),我有指定区域的右上角(纬度/经度)和左下角(纬度/经度)。有了这些信息,我怎样才能找到合适的记录? 最佳答案 LAT1=MIN(右上纬度,左下纬度)LAT2=MAX(右上纬度,左下纬度)LON1=MIN(右上经度,左下经度)LON2=MAX(右上角经度,左下角经度)SELECTfieldsFROMpointsWHERElatBETWEENLAT1ANDLAT2ANDlonBETWEENLON1ANDLON2这样,如果您带着盒子穿过本初子
我有一个包含纬度、经度和坐标列的表格。有超过500,000行。每一行的坐标字段目前都是空的。我需要做的是将纬度和经度转换为地理空间POINT()并将其放入坐标列中。这可能吗?我知道POINT可以这样插入:INSERTINTO`myTable`(`coordinates`)VALUES(GeomFromText('POINT(50.251.6)'));我基本上需要这样做,但需要从每一行的latitude和longitude中提取值。 最佳答案 这是一个较旧的问题,但我已经指出所有答案都是错误的(至少在2019年)纬度和经度必须与答案相
我正在开发一个应用程序,用户可以在其中搜索其位置附近的项目。当用户注册我的服务时,会获取他们的经/纬度坐标(这实际上是从邮政编码中获取的,然后通过Google查找经度/纬度坐标)。当用户添加一个项目时,也会发生这种情况,系统会要求他们提供该项目的邮政编码,然后将其转换为经度/纬度。我的问题是,我如何使用MySQL运行一个查询,该查询会在距离用户位置(比如说20英里)的范围内进行搜索,并获取20英里半径范围内的所有项目? 最佳答案 假设精度不是真正的问题(取正方形而不是圆形,并忽略地形),您可以这样做:SELECT...FROM...
我有一张包含咖啡馆纬度/经度的表格。我想做一个SQL查询,为我提供离每家咖啡馆最近的咖啡馆。有人可以提供有关如何执行此操作的建议吗?表格基本上是这样的:咖啡馆ID+-------------------------+----------------------+----------------------+|cafe_id|gps_latitude|gps_longitude|+-------------------------+----------------------+----------------------+|011-1003|55.86649500000000000|8.
这是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问题,但我找不到我的错误。这是我收到的错误:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'€“longitude)*PI()/180))*180/PI())*60*1.1515)*1.609344)ASdistance'atline1这里是MySql数据库查询,用于获取long和lat的距离:$res=mysql_query("S