如何从谷歌地图URL中获取纬度和经度

9

我正在开发一款安卓应用程序,它可以从Google地图中存储纬度和经度信息。当用户在地图上选择位置并通过“发送/分享”意图从Google地图接收时,应用程序会提取坐标,方法是将嵌入在意图中的goo.gl地图链接(例如http://goo.gl/maps/FcglP)进行展开。如果从Google地图共享的位置未知或名为“dropped pin”,则此任务很容易完成。在这种情况下,未缩短的URL看起来像

http://maps.google.com/?q=17.50122123,74.12351323&.....

如果地点是众所周知的(例如某条路),未缩短的URL看起来像:

http://goo.gl/maps/FcglP
http://maps.google.com/?q=Sutarwadi+Baner+Gaon+Rd%2C+Baner&ftid=0x3bc2becfa70b8b3f:0xd210c15f634bcec3&hl=en&gl=us

我已经搜索了三个小时,想要从这种URL中提取坐标,但是没有找到任何信息。是否有其他方法可以从给定的goo.gl地图URL中提取坐标?是否有已经开发好的库或Google API?


我认为使用Android Google Maps v2不可能实现这一点。可以尝试使用Places API、ArcGIS Map或其他工具。 - M D
我尝试了Places API,但没有成功。我认为在这种情况下ArcGIS也不会有帮助。 - enli
这是不可能的,因为你怎么能从这种类型的URL中获取坐标呢? - M D
那就是为什么有stackoverflow的问题 :-) - enli
你找到答案了吗? ;) - Micky
有人找到了解决方案吗? - Sagar Shah
2个回答

4

2
这个方法可行,但需要下载 10k 的数据。有人知道怎么解析 ftid= 部分获得经纬度吗?看起来它可能是经纬度。 - Hans-Christoph Steiner
请查看此答案:https://dev59.com/L63la4cB1Zd3GeqPRb7y#63842716 - AmmAr Yasser

0

function myMap() {

var mapUrl = $('.map').html();
var url = mapUrl.split('@');
var at = url[1].split('z');
var zero = at[0].split(',');
var lat = zero[0];
var lon = zero[1];

var mapProp= {
        center:new google.maps.LatLng(lat,lon),
        zoom:5,
};
var map = new google.maps.Map(document.getElementById("mapL"),mapProp);

}


编辑您的原始帖子。 - Zun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接