• 计算经纬度的正方形边界


    -- 当基站导入成功以后调用该存储过程:(注:在此存储过程调用之前,java程序会将用户导入的小区和场景关系拆分成多对多关系。分_line和_plane两个表)
    -- 1、根据city_border配置表,更新基站表的cityid/PROV_ID
    -- 2、更新bs_scene_plane_rel:更新场景名字为用户导入的名字,场景id为场景名字的md5值。
    -- 3、更新bs_scene_line_rel:根据用户导入名字和系统配置的场景对照表,更新场景名字,场景id.
    -- 4、更新小区border,并根据小区border 小区场景关系 计算出高校、住宅区、商业区等场景的边界

    -- 更新小区border,并根据小区border 小区场景关系 计算出高校、住宅区、商业区等场景的边界
    #Routine body goes here...
    -- 1、根据基站的经纬度信息,更新基站边界
    -- 2、根据基站和场景关系表,获取一个场景所有的基站边界,并生成场景的边界。

    -- 以基站为中心点,边长为3公里的正方形的4个顶点。
    SELECT scene_cell_length into @dis FROM cfg_cell_length LIMIT 1;
    set @radius=6378137.0;
    set @pi=3.1415926;
    set @disLon=@dis*180/(@radius*@pi);
    -- 更新基准纬度,根据纬度不同,计算纬度的正方形顶点时,需要加上一个基数
    update bs_scene_rel_trans set baselat=log(tan((90+LATITUDE)*@pi/360)) where scenetype in(1,4,5);
    -- 更新经纬度值
    update bs_scene_rel_trans set lat1=atan(exp(baselat-@dis/@radius))*360/@pi-90,
    lat2=atan(exp(baselat+@dis/@radius))*360/@pi-90,
    lon1=LONGITUDE-@disLon,lon2=LONGITUDE+@disLon where scenetype in(1,4,5);
    -- 更新border
    update bs_scene_rel_trans set CELL_BORDER = concat('POLYGON((',LON1,' ',LAT1,', ',
    LON2,' ',LAT1,', ',LON2,' ',LAT2,', ',LON1,' ',LAT2,', ',LON1,' ',LAT1,'))') where scenetype in(1,4,5);

  • 相关阅读:
    传统IO拷贝与零拷贝技术比较
    NIO编程之多客户端聊天系统
    NIO编程模式示例
    java.nio.channels.IllegalBlockingModeException
    NIO之Buffer操作示例
    NIO之FileChannel操作示例
    Flask学习笔记04之路由重定向
    python对象之__call__方法
    在Android Studio中找不到AppCompatActivity解决方案
    信息反馈-冲刺04
  • 原文地址:https://www.cnblogs.com/wanxqing/p/10956691.html
Copyright © 2020-2023  润新知