尝试映射纬度/长度坐标,无法输入所需的参数

时间:2014-04-03 07:39:12

标签: python list function google-maps pygmaps

我有一个需要2个浮点参数的函数(mymap.addpoint from pygmaps module)。我有一个for循环,为列表中的每个城市生成纬度和经度。我想使用这些坐标将多个点(标记或引脚)添加到谷歌地图,但我无法弄清楚如何将它们作为参数输入。 map_regions是城市列表:

print map_regions
for item in map_regions:
        try:
            geo = Geocoder.geocode(item)
        except:
            pass
        else:
            point = (geo[0].coordinates)
        print point
regions_map.addpoint(lat, long)

我意识到上面的代码在for循环中没有包含addpoint函数。我还在尝试弄清楚如何在函数中传递两个参数,然后多次执行,如果这有意义的话。

这不起作用,因为需要两个参数:

regions_map.addpoint(point)

我试过这个,但看起来这两个参数被视为字符串而不是浮点数:

for item in map_regions:
        try:
            geo = Geocoder.geocode(item)
        except:
            pass
        else:
            point = (geo[0].coordinates)
            joint = ', '.join(map(str, point))
            split_point = joint.split(',', 2)
            lat = split_point[0]
            lon = split_point[1]
        print point
regions_map.addpoint(lat, long)

这是我得到的错误:

  <&#39; MI&#39;,&#39; Allegan,MI&#39;&#39; Alma,MI(All Digital)&#39;&#39; Almont Township,MI&#39 ;,&#39; Alpena,MI&#39;,&gt;&#39; Arnold Lake / Hayes,MI(All Digital)&#39; Au Gres,MI&#39;]

     

(44.3148443,-85.60236429999999)

     

(42.5291989,-85.8553031)

     

(43.3789199,-84.6597274)

     

(42.9450131,-83.05761559999999)

     

(45.0616794,-83.4327528)

     

(45.0616794,-83.4327528)

     

(44.0486294,-83.6958161)

     

追踪(最近一次呼叫最后一次):

     

File&#34; /Users/digital1/Dropbox/Programming/Map_Locations/gmaps.py" ;,第82行,在      gmaps_mapit()

     

文件&#34; /Users/digital1/Dropbox/Programming/Map_Locations/gmaps.py",第78行,&gt; gmaps_mapit      regions_map.draw(&#39; ./ mymap.html&#39)

     

文件&#34; build / bdist.macosx-10.6-intel / egg / pygmaps.py&#34;,第48行,平局

     

文件&#34; build / bdist.macosx-10.6-intel / egg / pygmaps.py&#34;,第83行,在绘制点

     

文件&#34; build / bdist.macosx-10.6-intel / egg / pygmaps.py&#34;,第129行,在绘图中

     

TypeError:需要浮点参数,而不是str

如何使用for循环(或其他)将坐标作为函数的参数传递以生成多个点?

我是一位非常优秀的Google员工,但这个很难。我甚至不确定如何搜索它。感谢

1 个答案:

答案 0 :(得分:0)

错误说addpoint()函数需要参数为float,你将它们作为字符串传递。您只需要将它们解析为float:

regions_map.addpoint(float(lat), float(long))