0

知道如何使用正则表达式从原始 googlemaps 链接获取缩放级别、纬度和经度。我的想法是我只是将原始 googlemaps v3 链接放在我的 cms 中,我的问题是当我需要使用自定义标记在我的 cms 页面上显示它时使用此链接。需要对 gmap 链接进行一些反向解析。

感谢所有输入。

原始谷歌链接是这样的:(想以某种方式缩放水平,纬度和经度 - 也许使用正则表达式) https://maps.google.com/maps?q=barcelona+spain&hl=en&ll=41.385052,2.184906&spn=0.336927,0.883026 &sll=57.029521,9.933014&sspn=0.488772,1.766052&t=h&hnear=巴塞罗那,+省+of+巴塞罗那,+加泰罗尼亚,+西班牙&z=11

所以答案:

str= 'the googlemaps link';
zoomRegex= str.match(/&z=([^&]+)/);
zoomlevel = zoomRegex[1];

var ll = new Array();
LatLongRegex= str.match(/&ll=([^&]+)/);
LatLong = LatLongRegex[1];
ll = LatLong.split(',');

console.log("lat:" + ll[0]+ ", long:" + ll[1] +" - Zoomlevel:"+zoomlevel);​

认为这是它的谢谢。它需要改进吗?

4

1 回答 1

2

您可以解析出查询字符串的不同变量,如下所示:

str = "https://maps.google.com/maps?q=barcelona+spain&hl=en&ll=41.385052,2.184906&spn=0.336927,0.883026&sll=57.029521,9.933014&sspn=0.488772,1.766052&t=h&hnear=Barcelona,+Province+of+Barcelona,+Catalonia,+Spain&z=11";

matches = str.match(/&z=([^&]+)/);
zoomlevel = matches[1];

此示例用于缩放级别,我假设 lat/long 变量为ll. 如果您需要单独的纬度和经度,您可以split在逗号处。

于 2012-09-16T11:53:14.343 回答