已知要查詢某點經緯度1公裡範圍内的地标點,查詢解決方法:
1、釋出圖層方法:使用arcgis,自己釋出map服務圖層,在根據點做一個1公裡範圍圓,跟釋出的圖層做相交判斷,可以傳回相交的一些地标點資料和相關屬性值;
2、背景查詢資料庫方法:
1)大批量資料查詢時,肯定不可以一條條的地标點資料進行比對,這個時候需要加上條件限制,辟如經緯度的大小,約定好需要查詢的地點範圍進行篩選,會提高很多的效率;
可以參考如下模型:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CXysGVOlXWq1ENNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DOzEzM0QDN0EzMxUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2)如何将米為機關轉化為經緯度,根據經緯度大小去約定範圍
public void jishuanlong(){
double lng=119.281394256422;
double lat=36.68916380103680;
double fangwei=500;//機關m
double x;
double y;
//經度差
x=fangwei/(110000*Math.cos(lat));//讓查詢範圍大一點,這樣不會遺漏資料
//緯度差
y=fangwei/110000;//讓查詢範圍大一點
System.out.print("經度差:"+x+",緯度差:"+y);
}
3)用sql時确定好範圍即可(但是相關sql的約定function,自己去查找下,辟如要求<200)