最近谷歌地图上似乎发生了一些变化,改变了默认缩放。我尝试添加 zoom=17 和 z=17,但似乎没有任何改变。
我只是使用以下网址和查询在页面上创建一个超链接
" https://maps.google.com/?zoom=17&q= " +myAddress.replace(/ /g, '+');
在过去,无论我在查询中使用什么地址,它总是可以正常工作。只是想知道可能发生了什么变化,以及我是否需要以另一种方式解决这个问题。
最近谷歌地图上似乎发生了一些变化,改变了默认缩放。我尝试添加 zoom=17 和 z=17,但似乎没有任何改变。
我只是使用以下网址和查询在页面上创建一个超链接
" https://maps.google.com/?zoom=17&q= " +myAddress.replace(/ /g, '+');
在过去,无论我在查询中使用什么地址,它总是可以正常工作。只是想知道可能发生了什么变化,以及我是否需要以另一种方式解决这个问题。
z=13
除非同时提供纬度和经度,否则谷歌地图现在不会放大。例如:&ll=98.414257,-21.727585
。
作为一名脚本编写者,这会使您的任务更加复杂;这是一种可行的伪代码方法:
像以前一样打开地图页面,但将其(自定义 URL 参数或GM_setValue
)标记为您的脚本首次打开的。
将脚本设置为也在 Google 地图页面上运行。
在标记的 Google 地图页面上:
z
参数 EG &z=17
。location.replace()
到修改后的分享链接或者,更持久的策略是改用Google Maps API。
如果您访问Google 地图并单击并分享链接按钮,您将看到如下内容:
https://maps.google.com/?ll=53.944771,-0.854187&spn=0.890705,2.694397&t=m&z=9
所以我认为你应该担心一些必填字段......
这是我最终用来解决问题的方法。正如 Brock 解释的那样,我可以通过 z=16 提供纬度和经度来指定缩放。
addMapLL('900+w+900+s+clearfield+UT'); // just a random address formatted
function addMapLL(address) {
var api = "https://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=" + address;
GM_xmlhttpRequest(
{
method: 'GET',
url: api,
onload: function(resp) {
var obj = JSON.parse(resp.responseText);
if (obj.status == "OK") {
var lat = obj.results[0].geometry.location.lat;
var lng = obj.results[0].geometry.location.lng;
var ll = "&ll=" + lat + "," + lng;
// .href is already set as follows
// https://maps.google.com/?z=16&q=900+w+900+s+clearfield+UT
document.getElementById('googlemap').href += ll;
}
}
});
}