【问题标题】:Is there a way to get a place from Google Maps using only lng & lat coordinates?有没有办法只使用 lng 和 lat 坐标从谷歌地图中获取一个地方?
【发布时间】:2021-10-15 08:36:15
【问题描述】:

我想知道是否有一种方法可以仅使用经度和纬度坐标从 Google 地图中获取地名、地点类型或其他名称。

我有这个网址。

https://www.google.com/maps/place/@42.34,-71.10

在 Google 地图中我看到了这个。

最接近红色标记的是西蒙斯大学,但西蒙斯大学不在 URL 中。如果我点击“西蒙斯大学”的文字,我会得到这个 URL。

https://www.google.com/maps/place/Simmons+University/@42.34,-71.1021887,17z/data=!4m13!1m7!3m6!1s0x0:0x0!2zNDLCsDIwJzI0LjAiTiA3McKwMDYnMDAuMCJX!3b1!8m2!3d42.34!4d-71.1!3m4!1s0x89e379f7e743c9c5:0xa77a577bc7bd4396!8m2!3d42.339063!4d-71.1004376

现在,西蒙斯大学在 URL 中。有什么方法可以提取最接近红色标记的文本吗?

我一起破解了这段代码。

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome('/home/datafiles/chromedriver')
driver.get('https://www.google.com/maps/place/@42.34,-71.10')
sleep(2)

我收到了这个错误。

WebDriverException: Message: 'chromedriver' executable may have wrong permissions.

环境实际上是 Linux,我在 Jupyter Notebook 中使用 Python。我以前从未使用过 Linux。

【问题讨论】:

    标签: python python-3.x linux selenium-chromedriver


    【解决方案1】:

    由于您的网址中有特殊字符而不是

    driver.get('https://www.google.com/maps/place/@42.34,-71.10')
    

    试试这个:

    driver.get(r'''https://www.google.com/maps/place/@42.34,-71.10''')
    

    【讨论】:

    • 原始字符串导致反斜杠被逐字处理,仅此而已。三引号字符串只允许嵌入换行符。两者都与 URL 中存在的字符无关。
    • @chepner 见stackoverflow.com/questions/49899423/…。是不是类似的问题?
    • 我不知道为什么选择了这个答案。原始字符串没有做任何有用的事情。您可以自己查看:'https://www.google.com/maps/place/@42.34,-71.10' == r'''https://www.google.com/maps/place/@42.34,-71.10''' 的计算结果为 True。两种文字都产生完全相同的字符串。
    • 该问题中的假设似乎是文字字符串password 代表一个确实需要原始字符串来保留预期值的字符串。跨度>
    【解决方案2】:

    简短的回答 - 不。 这是画布,需要其他工具

    【讨论】:

    • 我已经尝试了几件事,但到目前为止,没有什么对我有用。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2017-09-06
    • 2020-08-13
    相关资源
    最近更新 更多