以某坐标为中心点,获取一定半径范围内的点位

思路大概就是下面这样的,以某个坐标为中心点,根据提供的半径获取中心点的四个临界值即minLat、maxLat、minLng、maxLng,根据这四个临界值,就能得到一个正方形,排除正方形之外的点位,计算剩下点位与中心点位的距离,如果大于指定的半径排除掉,反之保留。(直接计算圆内的点位,米有思路,谁要是有好办法的话,提醒下)。

1、逻辑

/**
 *
 * @param coordinate 中心点
 * @param dis 半径 单位km
 * @return
 */
@Override
public AjaxResult getAllAffairByDis(String coordinate,double dis){
    String[] arr = coordinate.split(",");
    //拿到四个临界点
    double[] coor = MapUtil.centerDis(Double.valueOf(arr[0]),Double.valueOf(arr[1]),dis);

    System.out.println("边界点的距离"+JSON.toJSONString(coor));
    List<TAffair> tAffairs = affairMapper.byCoor(coor[0],coor[1],
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue.js中使用vue2-leaflet给地图上的点位布一个半径为3km的圈,你可以按照以下步骤进行操作: 1. 首先,确保你已经按照上述步骤在Vue.js项目中引入了vue2-leaflet库。 2. 在Vue.js组件中引入必要的依赖项和组件。 ```javascript import { L, Circle } from 'vue2-leaflet'; ``` 3. 在Vue.js组件的模板中添加一个Leaflet地图容器。 ```html <template> <div> <l-map :zoom="zoom" :center="center"> <l-tile-layer :url="tileLayerUrl"></l-tile-layer> <!-- 添加其他图层和覆盖物 --> </l-map> </div> </template> ``` 4. 在Vue.js组件中定义地图的初始状态。 ```javascript data() { return { zoom: 10, // 地图缩放级别 center: [0, 0], // 地图中心点坐标 tileLayerUrl: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', // 瓦片图层URL }; }, ``` 5. 在Vue.js组件中添加一个方法来绘制圆形覆盖物。 ```javascript methods: { drawCircle() { const radius = 3000; // 半径为3km const circle = L.circle(this.center, { radius: radius, fillColor: '#ff0000', fillOpacity: 0.5, color: '#ff0000', weight: 2, }); // 将圆形覆盖物添加到地图上 circle.addTo(this.$refs.map.mapObject); }, }, ``` 6. 在Vue.js组件的模板中添加一个按钮,用于调用绘制圆形覆盖物的方法。 ```html <template> <div> <l-map ref="map" :zoom="zoom" :center="center"> <l-tile-layer :url="tileLayerUrl"></l-tile-layer> <!-- 添加其他图层和覆盖物 --> </l-map> <button @click="drawCircle">绘制圆形</button> </div> </template> ``` 通过点击按钮,就可以在地图上绘制一个半径为3km的圆形覆盖物。你可以根据需要对圆形覆盖物的样式进行修改,并添加其他功能来满足你的需求。请注意,在上述代码中,我们使用了OpenStreetMap作为瓦片图层,你也可以使用其他的瓦片图层。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值