草庐IT

Geolocation

全部标签

php - 如何使用 Eloquent 查询两个坐标之间的距离

我知道这个问题已经被问过很多次了。但是没想到按照自己的需求来制作。我需要查询离另一个用户最近的用户。基本上,我有一个users表,该表与具有纬度和经度字段的users_locations表具有一对一关系。所以我看到了这个https://laravel.io/forum/04-23-2014-convert-this-geolocation-query-to-query-builder-for?page=1这可能是最好的解决方案。但我的基本查询是:\App\Model\User::whereNotIn('id',$ids)->where('status',1)->whereHas('us

php - 如何在laravel中搜索给定距离和给定经纬度的所有位置

这是我的情景:我通过以下方式将商店详细信息保存在mysql数据库中。shopName,latitude,longitude,现在如果有人给出他的经纬度位置和距离(比如5公里),我需要填写他5公里范围内的所有商店,这里以用户为中心,半径为5km,我需要找到该圆圈内的所有商店,我的应用程序是在laravel5.1中开发的我试着按照这个code,但这是行不通的。谁能帮帮我 最佳答案 您可以在您的模型中添加以下代码publicfunctionScopeDistance($query,$from_latitude,$from_longitud

mysql - 需要帮助优化 mysql 的纬度/经度地理搜索

我有一个mysql(5.0.22)myisam表,其中大约有300k条记录,我想在五英里半径内进行纬度/经度距离搜索。我有一个涵盖经纬度字段的索引,当我只选择纬度/经度时速度很快(毫秒级响应)。但是,当我选择表中的其他字段时,速度会减慢到5-8秒。我正在使用myisam来利用全文搜索。其他索引表现良好(例如select*fromListingwhereslug='xxxxx')。如何优化我的查询、表或索引以加快速度?我的模式是:CREATETABLE`Listing`(`id`int(10)unsignedNOTNULLauto_increment,`name`varchar(125)

sql - 地理位置 SQL 查询找不到确切位置

我测试我的地理定位查询已经有一段时间了,直到现在我还没有发现任何问题。我试图搜索给定半径内的所有城市,通常我使用城市的坐标搜索城市周围的城市,但最近我尝试在城市周围搜索并发现城市本身没有返回。我的数据库中有这些城市的摘录:citylatitudelongitudeSaint-Mathieu45.316708-73.516253Saint-Édouard45.233374-73.516254Saint-Michel45.233374-73.566256Saint-Rémi45.266708-73.616257但是当我在Saint-Rémi市周围运行查询时,使用以下查询...SELECTt

php - 如何在 PHP 中使用 MaxMind GeoIP?

我正在使用MaxMind的GEOIPCITY数据库的二进制版本。以下代码为我提供了我需要的有关访问者的所有信息:include("geoipcity.inc");include("geoipregionvars.php");$gi=geoip_open("GeoLiteCity.dat",GEOIP_STANDARD);print_r(geoip_db_get_all_info());$record=geoip_record_by_addr($gi,$user_ip);print$record->country_code."".$record->country_code3."".$re

php - 在 MySQL 中的十进制列中查找最接近的匹配项

下午,我很难理解这个问题。我有一个MySQL表,其中包含英国邮政编码及其经度和纬度值的列表。我希望能够对表格进行搜索,以找到最接近给定经纬度对的邮政编码。我一直在尝试使用的查询是:"SELECTid,outcodeASthecode,@la:=MATCH(lat)AGAINST(?)ASscore_lat,@ln:=MATCH(lng)AGAINST(?)ASscore_lng,@la+@lnASscore_totalFROMpostcodesORDERBYscore_totalDESCLIMIT10然而,这只会返回看似随机的邮政编码,例如Lat:55.775549和Long:-4.0

java - 如何将此 MySQL 查询转换为 Hibernate 查询

我想问一下如何将这个MySQL查询转换为Hibernate查询:SELECT*FROMCitiesWHEREWITHIN(GeomFromText('POINT(52.513.3)'),polygon);或者这个SELECT*FROMCitiesWHEREMBRContains(polygon,GeomFromText('POINT(52.513.3)');谢谢。托马斯 最佳答案 明白了:importcom.vividsolutions.jts.geom.Coordinate;importcom.vividsolutions.jts

mysql - 如何在 Laravel 的 MySQL 中通过查询插入 [Spatial Point] 值

我有一个表,其中有一列类型为Spatialpoint,,我希望查询使用laravel插入该列的值如果有查询以获取特定范围内的项目?这里有什么帮助吗??这是我的table:publicfunctionup(){Schema::create('markers',function(Blueprint$table){$table->integer('marker_id')->primary();$table->string('marker_name',45);$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'

php - 使用 PHP 和 MySQL 进行地理位置半径搜索

我正在开发一个工作门户,最终用户将在其中根据他们的位置和邻近半径搜索工作。目前RESTAPI由SLIM和MySQL提供支持。在Jobs表中,每一行都有纬度和经度。我在这里搜索并偶然发现了GeoDistancesearchwithMySQL.SELECTlatitude,longitude,SQRT(POW(69.1*(latitude-$lat),2)+POW(69.1*($long-$long)*COS(latitude/57.3),2))ASdistanceFROMTableNameHAVINGdistance现在我还有另外两个问题。如果只有MySQL查询就足够了,或者我必须用它设

php - 如何使用坐标将标记移动 100 米

我有2个坐标。坐标1是一个“人”。坐标2是目的地。如何将坐标1向坐标2靠近100米?这将用于cron作业,因此仅包括php和mysql。例如:Personisat:51.26667,3.45417Destinationis:51.575001,4.83889我如何计算Person的新坐标更近100米? 最佳答案 使用Haversine计算两点之间的差值,单位为米;然后按比例调整人物坐标的值。$radius=6378100;//radiusofearthinmeters$latDist=$lat-$lat2;$lngDist=$lng