2

Google Maps API を使用して PyMaps を調べています 。http://www.lonelycode.com/2008/12/04/google-maps-and-django/から見つけたサンプル コードを次に示します。

def showmap():
from pymaps import Map, PyMap # import the libraries

# Create a map - pymaps allows multiple maps in an object
tmap = Map()
tmap.zoom = 3

# Latitude and lognitude - see the getcords function
# to see how we convert from traditional D/M/S to the DD type
# used by Googel Maps

lat = 0.0
long = 0.0

# These coordinates are for Hong Kong
dlat = "22 15 0 N"
dlong = "114 10 60 E"

dlat = dcode.lat.split(" ")
dlong = dcode.long.split(" ")

# Convert the coordinates
lat = getcords(float(dlat[0]), float(dlat[1]), float(dlat[2]), dlat[3])
long = getcords(float(dlong[0]), float(dlong[1]), float(dlong[2]), dlong[3])

# Inserts html into the hover effect
pointhtml = "Hello!"

# Add the point to the map
point = (lat, long, pointhtml, icon.id)

tmap.setpoint(point)
tmap.center = (1.757537,144.492188)

# Put your own googl ekey here
gmap = PyMap(key=GOOGLE_KEY, maplist=[tmap])
gmap.addicon(icon)

# pymapjs exports all the javascript required to build the map!
mapcode = gmap.pymapjs()

# Do what you want with it - pass it to the template or print it!
return mapcode

問題は、プログラムを実行するとエラーが発生することです。「NameError: グローバル名 'dcode' が定義されていません」というメッセージが表示されます。タイプミスですか?

4

1 に答える 1

0

私の推測では、次のようになるはずです。

# These coordinates are for Hong Kong
dlat = "22 15 0 N"
dlong = "114 10 60 E"

dlat = dlat.split(" ")
dlong = dlong.split(" ")

getcords関数をどこにもインポートしていない場合、おそらくここで問題が発生するでしょう。

# Convert the coordinates
lat = getcords(float(dlat[0]), float(dlat[1]), float(dlat[2]), dlat[3])
long = getcords(float(dlong[0]), float(dlong[1]), float(dlong[2]), dlong[3])

longまた、型であるため、変数名として使用しないことをお勧めしますint

In [98]: long?
Type:       type
String Form:<type 'long'>
Namespace:  Python builtin
于 2013-03-12T19:53:40.820 に答える