1. 程式人生 > >2015.03.01 mysql SQL語句獲取兩個經緯度之間的距離

2015.03.01 mysql SQL語句獲取兩個經緯度之間的距離

方式一:SQL語句

SQL拼接

StringBuffer sql = new StringBuffer("SELECT b.id, b.jd, b.wd, b.`name`, b.address, b.agree_count, b.flower_count, b.egg_count, b.discuss_count, b.membership_count, b.sale_info, b.pics, ");

sql.append(" round( 6378.138 * 2 * asin( sqrt( pow( sin((b.wd * pi() / 180 - ");
sql.append(wd);
sql.append(" * pi() / 180 ) / 2 ), 2 ) + cos(b.wd
* pi() / 180) * cos(");
sql.append(wd);
sql.append(" * pi() / 180) * pow( sin(( b.jd * pi() / 180 -");
sql.append(jd);
sql.append(" * pi() / 180 ) / 2 ), 2 ))) * 1000 ) AS distance");

sql.append(" FROM `business` b");

SQL語句如下:

SELECT b.id, b.jd, b.wd, b.`name`, b.address, b.agree_count, b.flower_count, b.egg_count, b.discuss_count, b.membership_count, b.sale_info, b.pics, round( 6378.138 * 2 * asin( sqrt( pow( sin(( b.wd * pi() / 180 - 30.544969 * pi() / 180 ) / 2 ), 2 ) + cos(b.wd * pi() / 180) * cos(30.544969 * pi() / 180) * pow( sin(( b.jd * pi() / 180 - 104.062414 * pi() / 180 ) / 2 ), 2 ))) * 1000 ) AS distance

FROM `business` b WHERE 1 = 1 ORDER BY distance ASC LIMIT 0, 100

方式二:百度定位SDK

// 【注意引數的順序:緯度、經度】當前位置距離店家的距離 LatLng(double latitude, double longitude)
LatLng startLocation = new LatLng(currentLatitude, currentLongitude);// 當前位置(起)
LatLng endLocation   = new LatLng(Double.parseDouble(sale.wd), Double.parseDouble(sale.jd));// 目標位置(止)

Double distance
= DistanceUtil.getDistance(endLocation, startLocation);// 距離

相關推薦

2015.03.01 mysql SQL語句獲取經緯度之間距離

方式一:SQL語句 SQL拼接 StringBuffer sql = new StringBuffer("SELECT b.id, b.jd, b.wd, b.`name`, b.address, b.agree_count, b.flower_count, b.egg_c

PHP獲取經緯度之間距離【百度地圖API】

/** * @param int $lat1 緯度1 * @param int $lng1 經度1 * @param int $lat2 緯度2 * @param int $lng2 經度2

MySQL sql語句獲取當前日期|時間|時間戳

1.1 獲得當前日期+時間(date + time)函式:now() mysql> select now(); +———————+ | now() | +———————+ | 2013-04-08 20:56:19 | +———————+ 除了 now() 函式能

SQL Server 獲取日期間的日期

() serve server cts where sele sel lar obj declare @start datetime declare @end datetime set @start = ‘2018-01-25‘ set @end = ‘201

用一句sql語句更新表並可更新對應的欄位的值

ACCESS 例子: insert into products (ProNumber,CASNumber,Cnname,Price,Enname,Baozhuang,Pinpai) select ProNumber,CASNumber,Cnname,Price,Enname,Baozhuan

如何用一條SQL語句刪除關聯表的記錄?

有兩個表:group_file和teach_classroom,其中的group_file.group_id和teach_classroom.classroom_id對應唯一 一條語句刪除兩個表的內容: select a.*,b.classroom_namefrom group_file a,t

使用一條sql語句查詢表的某個欄位為某個值時

使用一條sql語句查詢這兩個表的分數相同的人的名字(使用聯合查詢)    create table a( id int(10), score int(3), name varchar(20), )charset utf8; create table

MySQL中l獲取時間的年、月、日、小時、分鐘、秒之差

MySQL中l獲取兩個時間的年之差: select timestampdiff(year, "2017-12-25 19:15:16","2018-12-25 23:55:16") as year_diff; +-----------+ | year_diff | +----------

sql語句判斷時間段是否有交集

場景:資料庫有有兩個欄位.開始時間<startTime>,和結束時間<endTime>,指定一個時間段(a,b),a表示開始時間,b表示結束時間。看資料庫中有沒有與(a,b)衝突的時間段,有的話就返回那條記錄。 解析:兩個時間段相當於兩個集合,不過

js實現獲取日期之間篩選出指定周日制的方法

js var start = "2017-5-25"; var end = "2017-6-5"; var startTime = new Date(start); var endTime = new Date(end) var timeArr = []; var weekDay = ["1","2

獲取日期之間的所有日期列表

start.s () clas gpo arr lis imei rtti star public static List<Date> genDateList(Date beginDate,Date endDate){ List<Date> date

java 獲取日期之間的天數

public static String calcTwoDate(Date date ,Date date2){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date);

iSO獲取日期之間的所有日期陣列,精確到天

- (void)viewDidLoad {     [superviewDidLoad];     NSArray *datearr = [selfgetDayArrayLeftDate:@"2017年01月01日

Java獲取日期之間的所有日期集合

1.返回Date的list private List<Date> getBetweenDates(Date start, Date end) { List<Date> result = new ArrayList<Date>(); Calendar

轉 jquery獲取標籤之間文字

https://blog.csdn.net/u010403387/article/details/44197629?utm_source=blogxgwz8     如以下程式碼所示,id為tidy的<a>標籤中既存在<span>標籤,又存在“This is

獲取日期之間的工作日天數以及獲取日期之間的所有日期的列表

1.首先是程式碼實現: 1.1獲取工作日天數 /// <summary> /// 獲取兩個日期之間的工作日天數 /// </summary> /// <param name="BeginDate"&

java獲取時間之間有多少天

/** * date2比date1多的天數 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal1 = Cal

jsoup怎麼獲取標籤之間的text?

要處理的html import com.easestrategy.ws.model.WsHtml; import org.elasticsearch.client.transport.TransportClient; import org.jsoup.Js

python簡單獲取日期之間的年度、月度、天數差的方法

    最近因為要做一些簡單的結算工作,裡面有一些規則需要對年度、月份、天數進行比較,在網上查了半天,忽然發現python進行年度、月份、日期處理這麼難?!居然只是要計算兩個時間之間的月份差,還要數十行程式碼!     有點不敢相信,所以自己寫了一個日期和月份差的函式,現推薦

獲取日期之間剩餘的天數、小時、分鐘、秒

本帖最後由 wuxiaodony 於 2014-8-28 16:57 編輯例如活動截止時間是:2015/01/01 10:00:00然後就利用當前時間對比活動截止時間,獲取剩餘的時間!我要的不僅僅是天數,還要獲取剩餘的小時、分鐘、秒,就可以了哪位大神路過幫幫忙,感激不盡!