python - 从二维坐标识别区域的最快方法

标签 python if-statement coordinates

我有以下代码:

def findRegion(lat,lon):
    '''Gets a lat between -90,90 and a lon between -180,180 and returns a character'''
    if lat >= 50:
        y='ABCD'
    elif lat >= 0:
        y='EFGH'
    elif lat <= -50:
        y='MNOP'
    else:
        y='IJKL'

    if lon <= -90:
        x='AEIM'
    elif lon <= 0:
        x='BFJN'
    elif lon <= 90:
        x='CGKO'
    else:
        x='DHLP'

    for c in y:
        if c in x:
            return c

此函数获取两个坐标并返回显示的 16 个扇区代码之一 here .该代码运行完美,但它会被调用很多次,所以我正在寻找最快的解决方案。非常感谢任何建议。

最佳答案

这应该可以通过使用 x 和 y 来查找一维字符串中的区域来加快该过程。由于使用了 clamp,实际上可能会更慢。

clamp = lambda n, minimum, maximum: max(min(maximum, n), minimum)

def a(lat, lon):
    ## get lat, lon sections
    sec_lat = clamp((lat+90)/45,0,3)
    sec_lon = clamp((lon+180)/90,0,3)

    ## convert two values into a 1 dimensional list value
    sec = sec_lat*4 + sec_lon

    return "MNOPIJKLEFGHABCD"[sec]

关于python - 从二维坐标识别区域的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22459168/

相关文章:

c++ - 为什么我的 glutWireCube 没有放在原点?

geolocation - 如何验证纬度和经度

python - 我想知道 boto3 中的示例存储桶名称

Java if 语句没有转到正确的语句

javascript - 将数组放入 if 语句的变量中

Python pandas if 语句基于 boolean 限定符

java - 从旧坐标和 x 和 y 计算新坐标

python - Django 管理性能问题

Python 属性错误 : Object has no attribute in Unittest

python - 在 Python 中使用多个条件过滤数据的最佳算法