通过来自android中的gmaps的消息获取位置坐标

时间:2014-06-04 11:19:31

标签: java android google-maps

我正在编写一个函数来获取通过来自android中的地图应用程序的消息共享的位置坐标。我正在从消息中读取缩短的URL 并按照重定向来获取新的URL。新网址显示以共享位置为中心的地图。但是这个url也没有坐标。当地图从第二个网址加载时,在没有刷新页面的情况下,最终的网址会加载其中的坐标。我要读那个网址。例如: -

缩短的网址: goo.gl/maps/LUZi5

重定向网址(永久重定向): www.google.com/maps/preview?cid=808842597169779873&hl=en&gl=in

地图加载了这个新网址,其中包含感兴趣的地方。但是这个网址没有这个地方的坐标信息。一段时间后,网址会更改而不刷新/重新加载页面。

最终网址: google.com/maps/place/Radhika+Theatre/@15.140191,76.930298,17z/data=!3m1!4b1!4m2!3m1!1s0x0:0xx39960e838254a1?hl=en

在这里,我们可以看到 @ 之后的地点坐标。

我想在我的应用中捕获此网址。捕获重定向后,我只获得第二个网址而不是最终网址。怎么做。请帮忙

ps:似乎在页面完全加载后会显示最终的网址。

1 个答案:

答案 0 :(得分:0)

我不是专家,但我做了一些研究,你可以做一些解决方法:

  1. 创建一个谷歌分析链接,如:"https://goo.gl/#analytics/" + shortenedUrl + "/all_time"。对你而言,它将是https://goo.gl/#analytics/goo.gl/maps/LUZi5/all_time

  2. 现在,使用html解析器,您可以轻松获取cid的网址:

    <div class="IXTYPID-h-g IXTYPID-b-a"> 
        <a href="http://maps.google.com/?cid=808842597169779873&amp;hl=en&amp;gl=in">http://maps.google.com/?cid=808842597169779873&amp;hl=en&amp;gl=in</a> 
        <p>Created: 
              <span>2014 Jun 4</span>
        </p> 
    </div>
    
  3. 如果您有cid个号码,则可以使用此线程中的方法: https://stackoverflow.com/a/24131148/3804906获取坐标。

  4. 更新2016-10-10

    似乎谷歌改变了缩短链接的行为。它现在重定向两次。首先进入与cid相关的链接 http://www.google.com/maps/preview?cid=808842597169779873&hl=en&gl=in

    最后网址更改为https://www.google.com/maps/place/Radhika+Theatre/@15.140191,76.930298,17z/data=!3m1!4b1!4m2!3m1!1s0x0:0xb39960e838254a1?hl=en 自动