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 打造一个微信跳一跳辅助!(手机本地运行)

d3友好的交互

d3友好的交互

python+opencv2快速找出一组点包围的区域中的所有点

python——输入多个经纬度坐标,找出中心点

python基于图像的掩码mask信息获取病灶区域ROI最小外接矩形坐标位置opencv基于掩码最小外接矩形坐标剪裁原图(crop image by mask rectangle)