根据经纬度,半径,查询数据

1、根据经度X、维度Y、半径画出一个范围
 

public Polygon createCircle(double x, double y, final double RADIUS){
		final int SIDES = 32;//圆上面的点个数
	    Coordinate coords[] = new Coordinate[SIDES+1];
	    for( int i = 0; i < SIDES; i++){
	        double angle = ((double) i / (double) SIDES) * Math.PI * 2.0;
	        double dx = Math.cos( angle ) * RADIUS;
	        double dy = Math.sin( angle ) * RADIUS;
	        coords[i] = new Coordinate( (double) x + dx, (double) y + dy );
	    }
	    coords[SIDES] = coords[0];
	    LinearRing ring = geometryFactory.createLinearRing( coords );
	    Polygon polygon = geometryFactory.createPolygon( ring, null );
	    return polygon;
	}

2、根据经纬度得出一个点


Point point = geometryUtil.createPoint(Double.parseDouble(resultlist.get("LONGITUDE").toString()),Double.parseDouble(resultlist.get("LATITUDE").toString()) );


public Point createPoint(double x,double y){
		Coordinate coord = new Coordinate(x, y);
		
		Point point = geometryFactory.createPoint( coord );
		return point;
	}

3、判断该点是否在圈内。

if (polygon.contains(point)) {
	stationBuffer.append(gson.toJson(list.get(i))+",");
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圈圈的博客

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值