15858206080 发表于 2021-10-20 16:07:54

求 百度地图(或其他地图)网页版标注重命名脚本

求 百度地图(或其他地图)网页版标注重命名脚本
从去年开始,各大地图网站就陆续屏蔽了地图标注的重命名功能,以前地图上标注一个点,可以重命名该标注点,现在标注后默认生成标注点的名称,且名字灰色,不能更改自定义。
在地图的使用过程中 类似于做旅行攻略等都经常需要用到该功能,被官方屏蔽后,确实麻烦,此问题在地图贴吧里有很多用户反馈,但官方最后一条回复是2020年年底,说2021年会重新开通,但一直无果,官方也没有任何正面回复,不知道也没有大神能出手解决下此问题。谢谢。

Hangover 发表于 2021-10-20 16:07:55

本帖最后由 Hangover 于 2021-10-21 00:49 编辑

https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=1153

gg打开链接安装即可,目前仅支持了百度地图,改天我再试试把其他地图加上去。

王一之 发表于 2021-10-20 17:36:50

感觉脚本应该能实现,看看有没有大佬写了。

哥哥有兴趣也可以在论坛中学习。

cxxjackie 发表于 2021-10-20 20:43:29

临时写的,没怎么测试过,你试一下看看有没有问题:

```javascript
// ==UserScript==
// @name         百度地图自定义标记
// @description允许修改百度地图的标记名称
// @namespace    Sency
// @author       Sency
// @version      1.0
// @match      https://map.baidu.com/*
// @grant      none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';
    const platform = document.querySelector('#platform');
    if (platform) {
      const mutationObserver = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver;
      const observer = new mutationObserver(mutations => {
            for (let mutation of mutations) {
                for (let node of mutation.addedNodes) {
                  if (node.className === 'BMap_bubble_pop') {
                        const titleInput = node.querySelector('#us_infoWnd_title');
                        if (titleInput) titleInput.disabled = false;
                        const ctrl = node.querySelector('#userSignCtrl>.ctrl');
                        const title = node.querySelector('.iw_poi_title');
                        if (ctrl && title && title.children.length) {
                            const edit = document.createElement('span');
                            edit.innerHTML = '<b style="background-position: -75px -136px;" title="修改名称"></b>';
                            edit.onclick = function() {
                              if (window.MapSignInst && window.MapSignInst.cinfo) {
                                    const index = window.MapSignInst.cinfo.searchInfoWindow.content.index;
                                    const info = window.MapSignInst.cinfo.arg.callee.mapSign.pointInfo.list;
                                    const newTitle = prompt("输入名称:", info.title);
                                    if (newTitle) {
                                        info.title = newTitle;
                                        title.title = newTitle;
                                        title.children.innerText = newTitle;
                                    }
                              }
                            };
                            ctrl.insertBefore(edit, ctrl.children);
                        }
                  }
                }
            }
      });
      observer.observe(platform, {childList: true, subtree: true});
    }
})();
```

15858206080 发表于 2021-10-22 09:43:31

Hangover 发表于 2021-10-20 16:07
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=1153

gg打开链接安装即可,目前仅支持了 ...

谢谢兄弟帮我解决了困扰了我近一年的问题。

15858206080 发表于 2021-10-22 09:45:05

cxxjackie 发表于 2021-10-20 20:43
临时写的,没怎么测试过,你试一下看看有没有问题:

```javascript


谢谢大佬,问题已得到解决。

15858206080 发表于 2021-10-22 09:49:24

王一之 发表于 2021-10-20 17:36
感觉脚本应该能实现,看看有没有大佬写了。

哥哥有兴趣也可以在论坛中学习。 ...

嗨,我现在还完全不懂,处于菜鸟先沾各位大神光的阶段,不够这个困扰我很久的问题一下子就被解决了,帅啊!我来对地方找到组织了!

王一之 发表于 2021-10-22 09:50:10

15858206080 发表于 2021-10-22 09:49
嗨,我现在还完全不懂,处于菜鸟先沾各位大神光的阶段,不够这个困扰我很久的问题一下子就被解决了,帅啊 ...

有大佬解决了!

Hangover 发表于 2021-10-22 10:04:51

小白一枚(◞‸◟ )
页: [1]
查看完整版本: 求 百度地图(或其他地图)网页版标注重命名脚本