推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
wylwang
V2EX  ›  Python

请教:如何用已知的经纬度坐标在地图给定半径画圆。

  •  
  •   wylwang · Nov 27, 2018 · 5589 views
    This topic created in 2906 days ago, the information mentioned may be changed or developed.
    最近项目上需要在地图上根据商圈经纬度坐标画圆,用来确定两个坐标范围是否有重合,然后再将该圆形区域标记成等面积的 n 块。
    然后遍历数据库里的坐标,判断坐标属于哪个商圈区块。
    现在卡在了,不知道如何利用经纬度在地图上画圆,请教各位大佬,有什么方法能够实现!
    谢谢
    10 replies  •  2018-12-06 15:47:01 +08:00
    liuzhedash
    liuzhedash
    Nov 27, 2018
    1
    画圆的目的是判断两个坐标是否重合?还是要在地图上画一个圆形出来?
    feverzsj
    feverzsj
    Nov 27, 2018
    2
    圆上的点到圆心距离是相同的,你每隔一个角度计算出另一端的坐标就可以了,一般用等角线算法,距离很长的话可以用大圆算法
    AifeiI
    AifeiI
    Nov 27, 2018
    3
    图层覆盖物,圆形的直径 /半径预先计算好,然后描绘的时候,将圆形对准坐标点。
    AifeiI
    AifeiI
    Nov 27, 2018
    4
    @AifeiI 画圆就简单了吧,前段用样式或者画布都可以,app 也类似
    across
    across
    Nov 27, 2018
    5
    我做过一个类似 LBS,不过要求不太严格,经纬度要先转化成米的空间尺度计算。经纬度公式、转化代码网上能查到很多。
    画圈嘛,很简单,比如取 60 个采样点的平滑程度,把 360 度 60 等分,有了圆心半径,就知道采样点位置了,每个点连线不就好了。
    across
    across
    Nov 27, 2018
    6
    “经纬度要先转化成米的空间尺度计算”
    补充下这个,就是取个位置点作为空间原点,然后计算其他位置在该相对坐标系下的数值。
    wylwang
    wylwang
    OP
    Nov 27, 2018
    7
    @liuzhedash 在地图上画出圆形
    penisulaS
    penisulaS
    Nov 27, 2018
    8
    最简单的方法:
    把商铺的经纬度位置放入 redis,存为 geohash,
    然后 redis 的 api 可以根据给定的坐标和半径返回范围内的全部商铺.
    这其实就是根据 geohash 的特性做文章.
    复杂点的就是 postgres+postgis 做空间数据库,直接进行空间查询.
    penisulaS
    penisulaS
    Nov 27, 2018
    9
    你的需求是在地图上画图?用的什么地图控件?
    wylwang
    wylwang
    OP
    Dec 6, 2018
    10
    @kzfile
    @across
    @feverzsj
    感谢各位,目前这个问题已经通过另外一种方法解决了,曲线救国了.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   930 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.