本文主要是介绍大批量查询1公里范围内的地标点方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
已知要查询某点经纬度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)
这篇关于大批量查询1公里范围内的地标点方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!