1

最近谷歌地图上似乎发生了一些变化,改变了默认缩放。我尝试添加 zoom=17 和 z=17,但似乎没有任何改变。

我只是使用以下网址和查询在页面上创建一个超链接

" https://maps.google.com/?zoom=17&q= " +myAddress.replace(/ /g, '+');

在过去,无论我在查询中使用什么地址,它总是可以正常工作。只是想知道可能发生了什么变化,以及我是否需要以另一种方式解决这个问题。

4

3 回答 3

1

z=13除非同时提供纬度和经度,否则谷歌地图现在不会放大。例如:&ll=98.414257,-21.727585

作为一名脚本编写者,这会使您的任务更加复杂;这是一种可行的伪代码方法:

  1. 像以前一样打开地图页面,但将其(自定义 URL 参数或GM_setValue)标记为您的脚本首次打开的。

  2. 将脚本设置为也在 Google 地图页面上运行。

  3. 在标记的 Google 地图页面上:

    1. 抓住分享链接。
    2. 仅更改z参数 EG &z=17
    3. 确保清除任何标志。
    4. location.replace()到修改后的分享链接


或者,更持久的策略是改用Google Maps API

于 2013-04-05T21:16:34.417 回答
0

如果您访问Google 地图并单击并分享链接按钮,您将看到如下内容:

https://maps.google.com/?ll=53.944771,-0.854187&spn=0.890705,2.694397&t=m&z=9

所以我认为你应该担心一些必填字段......

于 2013-04-05T20:07:23.217 回答
0

这是我最终用来解决问题的方法。正如 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;
            }
        }
    });
}
于 2013-04-10T19:58:13.393 回答