地图上根据圆心经纬度、半径 创建多边形存储(JS/MYSQL实现)

本文介绍了如何使用JavaScript和MySQL根据圆心经纬度和半径创建多边形,以便在MYSQL空间表中存储。通过循环计算每个角度的经纬度,最后将这些点连接成多边形。提供了JS代码示例和MYSQL存储过程的实现。
摘要由CSDN通过智能技术生成

前提:

开发中遇到一个问题。前端创建一个圆。要把经纬度保存在MYSQL空间表中。但是空间数据库只支持点线面。自己上网搜了下。可以根据-180到180度循环。每几个度数,有一个经纬度,创建一个多边形。实现代码JS和MYSQL如下

<!--

 * @Description:

 * @Version: 1.0

 * @Autor: zhouwei

 * @Date: 2022-11-10 15:11:33

 * @LastEditors: zhouwei

 * @LastEditTime: 2022-11-10 16:11:14

-->

<!DOCTYPE html>

<html>

    <head>

       <title>圆转多边形</title>

    </head>

    <body>

        <script>

var ss = [];

function createCoord(coord, bearing, distance)

{

    /** http://www.movable-type.co.uk/scripts/latlong.html

     φ is latitude, λ is longitude,

     θ is the bearing (clockwise from north),

     δ is the angular distance d/R;

     d being the distance travelled, R the earth’s radius*

     **/

    var

        radius = 6371e3, //meters

        δ = Number(distance) / radius, // angular distance in radians

        θ = Number(bearing).toRad();

        φ1 = coord[1].toRad(),

        λ1 = coord[0].toRad();

    var φ2 = Math.asin(Math.sin(φ1)*Math.cos(δ) + Math.cos(φ1)*Math.sin(δ)*Math.cos(θ));

    var λ2 = λ1 + Math.ata

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值