谷歌地图链接从greasemonkey默认缩放

Google maps link from greasemonkey default zoom

本文关键字:默认 缩放 greasemonkey 链接 谷歌地图      更新时间:2023-09-26

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

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

" https://maps.google.com/?zoom=17& q = " + myAddress。

在过去,不管我在查询中使用什么地址,它总是工作得很好。只是想知道可能发生了什么变化,如果我需要另一种方式来解决这个问题。

Google地图,现在,将不会缩放超过z=13,除非纬度和经度也提供。例:&ll=98.414257,-21.727585 .

作为一个脚本编写人员,这会让你的任务更加复杂;下面是一个可以工作的伪代码方法:

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

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

  3. 标记谷歌地图页面:

    1. 获取共享链接
    2. 只修改z参数,如&z=17
    3. 确保任何标志被清除。
    4. location.replace()到修改后的共享链接


    或者,更持久的策略是切换到使用Google Maps API。

    如果你打开谷歌地图,点击分享链接按钮,你会看到这样的内容:

    https://maps.google.com/?ll=53.944771

    -0.854187, spn) = 0.890705, 2.694397, t = m& z = 9

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

    下面是我最终用来解决这个问题的方法。我可以指定zoom通过z=16提供纬度和经度,如Brock解释。

    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;
                }
            }
        });
    }