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 に答える