大批量查询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)

转载自:https://blog.csdn.net/qq_38262596/article/details/80297890

You may also like...