0

在编程方面,我是一个新手,我正在尝试将坐标转换为我正在使用 Python 开发的地图应用程序的图块编号。我得到的代码是这样的:

import math
def deg2num(lat_deg, lon_deg, zoom):
lat_rad = math.radians(lat_deg)
n = 2.0 ** zoom
xtile = int((lon_deg + 180.0)/360.0*n)
ytile = int((1.0 - math.log(math.tan(lat_rad)+(1/math.cos(lat_rad)))/math.pi)/2.0*n)
return (xtile, ytile)

当我将 lat_deg、lon_deg 和 zoom 值传入函数参数时,我在运行代码时不断收到语法错误。

有人可以帮忙吗。

谢谢

4

1 回答 1

1

除非您粘贴错误,否则您的错误就是缩进。

import math
def deg2num(lat_deg, lon_deg, zoom):
    lat_rad = math.radians(lat_deg)
    n = 2.0 ** zoom
    xtile = int((lon_deg + 180.0)/360.0*n)
    ytile = int((1.0 - math.log(math.tan(lat_rad)+(1/math.cos(lat_rad)))/math.pi)/2.0*n)
    return (xtile, ytile)

试试看。]

仍然没有看到您的问题,我运行了您的代码:

import math
def deg2num(lat_deg, lon_deg, zoom):
    lat_rad = math.radians(lat_deg)
    n = 2.0 ** zoom
    xtile = int((lon_deg + 180.0)/360.0*n)
    ytile = int((1.0 - math.log(math.tan(lat_rad)+(1/math.cos(lat_rad)))/math.pi)/2.0*n)
    return (xtile, ytile)

使用您所说的相同数字:

>>> print deg2num(40.22621608040184, 21.402665376663208, 10)
(572, 386)
>>> 
于 2012-12-07T07:46:53.913 回答