我正在马萨诸塞州创建一个远足径网页(使用Python)。我希望能够单击一条路径的名称,并让我的网页显示该位置的google地图。在我的数据库中,我有2列用于纬度和经度。我对Python还是很陌生,并且真的不知道该怎么做。这是我编写的代码:
def getMap():
"""
This is a middleware function which returns
latitude and longitude coordinates
from our database.
"""
# connect to db
conn, cursor = getConnectionAndCursor()
# prepare SQL
sql = """
SELECT lat
AND lng
FROM hiking
WHERE name = %s
"""
parameters=(name,)
# run the SQL
cursor.execute(sql, name)
# fetch the results
data = cursor.fetchall()
# clean up
cursor.close()
conn.close()
return data
def showMap(lat,lng):
"""
Presentation layer function to display a Google map.
"""
## create an HTML table for output:
print"""
<script
src="http://maps.googleapis.com/maps/api/js">
</script>
<script>
function initialize() {
var mapProp = {
center:new google.maps.LatLng(%s,%s),
zoom:15,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"), mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<div id="googleMap" style="width:500px;height:380px;"></div>
""" % (lat, lng)
if __name__ == "__main__":
# get form field data
form = cgi.FieldStorage()
debugFormData(form)
doHTMLHead("MassHike: A database of popular Massachusetts trails")
if 'name' in form:
name=form['name'].value
mapdata = getMap()
showMap()
else:
data = getAllHikes()
showAllHikes(data)
doHTMLTail()
我今天向助教寻求帮助,她不知道如何进行。我的网页给我一个错误,说:“:showMap()恰好接受2个参数(给定0个)”,所以我做错了什么。任何建议,将不胜感激!
最佳答案
调用函数时,需要包括参数。当前,您只是在调用showMap()。您的函数def showMap(lat,lng)
声明了两个必需的参数。 lat&lng。调用时必须提供这些内容。
我看不到您在哪里声明纬度和经度。您需要将这些数字放在某处并将其放入函数中。
带文字的示例调用:showMap('123','999')
带vars的示例调用:varLat = 40.44062479999999
varLng = -79.99588640000002
showMap(varLat,varLng)