Python 找出,从不可居住区域的坐标到位置/地址
Posted
技术标签:
【中文标题】Python 找出,从不可居住区域的坐标到位置/地址【英文标题】:Python to find out, from coordinates of non- habitable areas to location/address 【发布时间】:2014-10-08 05:39:51 【问题描述】:大家好……我的问题是关于如何找出一对地理坐标的位置。抱歉,问题是零散的,因为我进行了一些搜索并将它们放在一起仍然找不到正确的方法。
第一个问题: 似乎 Geopy 是地理编码的最佳方式,如果非英语单词的某些输出无关紧要。 (欢迎任何帮助解决非英语输出问题)
但是我需要搜索的一些坐标位于非居住区。
以下示例:
from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.reverse("81.79875708, -42.1875")
print(location.address)
它返回。
None
在https://maps.google.com/上搜索该坐标时,表示最近的识别点“东北格陵兰国家公园”,优于“无”。
那么我怎样才能得到这个“最近的识别点”呢?
第二个关于使用“pygmaps”的问题
aamap = pygmaps.maps(81.79875708, -42.1875, 16)
输出是:
<pygmaps.maps instance at 0x000000000313CC08>
它有什么用,怎么转成文字?
第三个问题使用“Json”方式:
response = urllib2.urlopen('https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA')
js = json.load(response)
print js['results'][0]['geometry']['location']
有没有办法逆转?即使用坐标找出它的地址。
谢谢。
【问题讨论】:
我编辑了答案以添加更多详细信息 【参考方案1】:我无法回答您的所有问题,但是关于您的第二个问题,我想您使用了print(aamap)
来获取输出。
打印未指定打印方式的对象时,默认行为是打印其类及其内存位置。这就是你得到的结果。
<pymaps.maps instance at 0x0000000000313CC08>
测试此代码以理解:
class NotPrintable(object):
def __init__(self, text):
""" Instanciation method """
self.text = text
class Printable(object):
def __init__(self, text):
""" Instanciation method """
self.text = text
def __repr__(self):
""" Text representation of the object called by print"""
return "A printable object whose the value is : 0".format(self.text)
if __name__ == "__main__":
print( NotPrintable("***Test") )
print( Printable("***Test") )
结果是:
<__main__.NotPrintable object at 0x7f2e644fe208>
A printable object whose the value is : ***Test
您得到的结果表明您不应该打印该项目来可视化其内容。快速搜索“google”将我带到这个网站:https://code.google.com/p/pygmaps/ 它提供了使用 pymaps 的代码示例,看起来可视化数据的好方法是:
#create the map object
mymap = pygmaps.maps(37.428, -122.145, 16)
#export the map
mymap.draw('./mymap.html')
创建一个包含您的地图的 HTML 页面。 如果有兴趣,您可以查看https://code.google.com/p/pygmaps/source/browse/trunk/pygmaps.py 的地图代码,但它似乎是输出对象数据的唯一方法。如果您确实必须提供文本输出,则可能必须自己编写导出代码。
希望对你有帮助!
=====编辑=====
关于 googlemap JSON API,请参阅文档:https://developers.google.com/maps/documentation/geocoding/
您可以在第一行中找到有关反向地理编码的信息,即
[...] 将地图上的位置转换为人类可读地址的过程称为反向地理编码。
看到这个特别:https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding
这是一个查询纬度为“40.71”,经度为“-73.96”的位置信息的示例:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.71,-73.96&key=API_KEY
这里是关于 API_key 的文档:https://developers.google.com/console/help/#UsingKeys
【讨论】:
没问题。如果某些点无法理解,请随时询问更多信息。我很好奇您将保留的解决方案。即使不是来自我。 感谢 Arthur Vaïsse 的跟进。顺便问一下,如何找出我的 API_KEY?谷歌仪表板已更改... 添加对API key文档的引用。以上是关于Python 找出,从不可居住区域的坐标到位置/地址的主要内容,如果未能解决你的问题,请参考以下文章
python+opencv2快速找出一组点包围的区域中的所有点
python基于图像的掩码mask信息获取病灶区域ROI最小外接矩形坐标位置opencv基于掩码最小外接矩形坐标剪裁原图(crop image by mask rectangle)