已知要查詢某點經緯度1公里範圍內的地標點,查詢解決方法:
1、發佈圖層方法:使用arcgis,自己發佈map服務圖層,在根據點做一個1公里範圍圓,跟發佈的圖層做相交判斷,可以返回相交的一些地標點數據和相關屬性值;
2、後臺查詢數據庫方法:
1)大批量數據查詢時,肯定不可以一條條的地標點數據進行匹配,這個時候需要加上條件限制,闢如經緯度的大小,約定好需要查詢的地點範圍進行篩選,會提高很多的效率;
可以參考如下模型:
2)如何將米爲單位轉化爲經緯度,根據經緯度大小去約定範圍
public void jishuanlong(){
double lng=119.281394256422;
double lat=36.68916380103680;
double fangwei=500;//單位m
double x;
double y;
/*同一經線上緯度差1°經線長約爲111KM.
同一緯線圈上,經度差1°,其長約爲111*cosαkm.(α爲地理緯度)*/
//經度差
x=fangwei/(110000*Math.cos(lat));//讓查詢範圍大一點,這樣不會遺漏數據
//緯度差
y=fangwei/110000;//讓查詢範圍大一點
System.out.print("經度差:"+x+",緯度差:"+y);
}
3)用sql時確定好範圍即可(但是相關sql的約定function,自己去查找下,闢如要求<200)