普通视图

发现新文章,点击刷新页面。
昨天以前首页

午夜白日梦

2025年5月7日 12:10

自媒体时代最蠢的、也是必然会发生的事情,便是当一个话题被聊起引起议论的时候,为了「热度」大家都会蹭一蹭。于是,在这种信息茧房的构建中,原本是一个解构到建构的知识,人们根本不在乎建构的部分,以为读懂了解构的「一句话」便得知了全部内容,到最后被越来越多博人眼球的自媒体变成了「结论」。

比如,接下来就有一个东西要火起来了——睡前妄想症。

睡前妄想症并不是一个「新词儿」,它是从解离性障碍里面分支出来的一个表象,而这个表象又是最接近我们日常生活的行为。准确来说,它不在精神病学的分支,而是细分在了心理学里的「心理防御机制」当中。但很多人得知这个新词儿的时候,就直接用上了它倒果为因的结论:

经常在睡前妄想的人,是因为童年受过了严重的创伤。朋友跟我聊起这个概念时,也恰逢我最近完成了安全感缺失症的系列,我确实认为安全感缺失症的症结要从童年的花园里去寻找那个熟悉的场景,但把睡前妄想症也归咎为是童年创伤,这倒是符合很多人对于「贴标签」的热爱,因为「童年有创伤」在很多时候也是「特别」的标签——当所有人都是幸福的时候,一个童年不幸福的人,一定会成为这个空间里被全方位关注的人,但是这种关注又是各取所需——同情弱小的人是在证明自己的伟大,而利用「特别」博取关注的人又会暗骂对方是一群蠢货皆是凡人。


睡前妄想症到底是什么?

要找到「睡前妄想症」在知识地图的什么地方?有必要先聊聊我个人的知识地图呈现的方式,因为每个人的知识地图有所不同,也并不意味着我的就是正确的。

  • 表象:指我们现在所处的现象世界,个体、群体、事件均是以表象形式存在,我们无法从一个独立个体的事件覆盖其他个体的结论。即开 BYD 的都是屌丝,这个结论属于刻板偏见;
  • 追 A:指寻找表象与表象之间的共同点,从而进行归纳总结。
    • 追 A 的核心其实就是多问一句「为什么」
    • 追 A 需要保持对事物的观察力、好奇心,以及独立思考、质疑和重新寻求真相的能力;
    • 一般来说,一个人若没有举一反三的能力,那通过追 A 构建自己知识地图的方式并不合适,他们更适合采用事件-感受的方式来归类自己对于一件事情的直觉感受;
    • 追 A 的过程是最容易触发「知识越多越堕落」的时候,所以需要通过实践来获得外界的回应,否则将会陷入到无参照物的虚无感中;
    • 追 A 的过程会随着年龄的变化,从「概念炼金术」进化至「概念建构」。这是个大话题,最后再聊;
  • 底层逻辑:指在寻找「为什么的为什么」。
    • 底层逻辑并不是一个具体的结论,而是某一种人们对于精神世界探索的认知架构。简单来说,就好比是哲学家对于「爱」这个课题的研究,从古至今,它仍然没有「标准答案」,而且每个人对于「爱」这个课题的感受也是完全不同的;
    • 既然底层逻辑不是「标准答案」,那我们为什么还要探寻?我们就拿哲学家对于「活着的意义」这件事有不同的解决方案:
      • 人的痛苦来源于理性,所以才感到虚无→解决方案:克尔凯郭尔提出用「信仰」对抗虚无;
      • 人的虚无感源自于欲望→解决方案:叔本华提出「禁欲」拿回对身体的控制权;
      • 上帝已死,信仰不是解决方案→解决方案:尼采提出「超人理论」通过权力意志掌控人生;
      • 虚无的本质是永远在变化的,人本身就是虚无的→解决方案:萨特提出「自由令人惊骇」的行知合一的思想;
      • 害!这个世界就是个巨大的草台班子,荒谬极了!→解决方案:加缪提出了「荒谬主义」认为应该活在当下;
    • 其实你会发现,这些底层逻辑,都会对应现在社会上某种「群体行为」的表象,比如利用信仰对抗死亡恐惧的、有一群人互帮互助鼓励禁欲的、有努力通过学习获得掌控感的、也有「老子今天过好就行」的自由派……
  • 从「追 A」到「底层逻辑」的路径
    • 最基本的是带着「为什么」去寻找相关的书本知识,这是人类智慧的结晶,但很多时候书本其实是「表象的汇总」,就是我一度提到过的「方法论其实是最不值钱」的根本原因。书本知识仍然是别人「追 A」的结果,它需要通过实践之后,变成个体对于知识的具象化感受;
    • 被很多人唾弃的「一万小时天才理论」本身就是底层逻辑。只是它要花费的成本太大,以至于人们开始通过否定它来寻求自我安慰;如果你是一个占卜师,你接手了 1000 个案子之后,自然而然就可以成为「大师」,因为你有足够多的案例可以让你总结人们最常问的问题、问题背后的相同原因、以及他说这句话的时候其背后的目的到底是什么,他其实想要从你这里得到怎样的答案……
    • 从解构到建构。更表象的说法是「思想深度 = 表征压缩 × 推理展开」。解构-建构是抽象的,甚至很多时候是可以结合你自身正在学习的某种东西。比如我曾经把塔罗牌和剧本结构进行了抽象化的解构,找到了它们之间非常精妙的共通性。但是这套系统很难被推广,因为它是每个人的「框架产物」(即一个人的观点、结论、判断,都是在特定认知框架下产生的结果)。

不是,到底什么才是「睡前妄想症」啊!

确实,上一小节感觉像是在装逼地拆解知识地图的结构,完全没有提到小标题的定义。

完全无视上一小节知识地图展开的过程,然后用自己的妄想构建出一个「我认为就是这样的」美妙世界,甚至认为可以在那个世界理解万事万物的底层规律的过程——就是睡前妄想症的底层逻辑。

比如,有的人会在半梦半醒的时候写书法字,觉得那些书法字一撇一捺的笔锋如此简单,自己也能写出一手好字——但这仅仅是存在于睡前的妄想世界里,真到了要握笔写字的时候又被打回原形——妄想完全忽视了这个结果被解构和建构、大量实践、验证的过程。

大部分的科普视频并不需要讲清楚这件事的底层逻辑,所以他们需要通过最直接的表象来吸引关注者的感同身受,比如所谓的睡前妄想症,就是跟自己根本不可能得到的人在妄想的世界里谈一场完美的恋爱,甚至发生肉体关系。

解决了这个底层逻辑,就可以「追 A」了,哪些事情跟睡前妄想症是一样的行程路径呢?

  • 心理防御机制里的「幻想」,幻想属于一种逃避现实的机制,在现实中无法满足欲望或达成目标,个体会在内心世界构建替代场景,以缓解焦虑或无力感。
  • 如果幻想与现实完全脱节,特别是个体明知道幻想与现实违背(比如一个艾滋病毒携带者幻想自己突然痊愈),那么在原始的「幻想」极致以外,还包含了心理防御机制中的「否定」机制;
  • 如果幻想的内容是对现实未完成任务、梦想的实现,那这是一种强烈的「补偿」和「理想化」机制;
  • 随着幻想的层级加重,如果这个幻想构建的是一个安全的世界,只有在这个世界才能暂时忘却现实的痛苦,特别是童年阴影;或者另一种极端,童年阴影会在这个妄想阶段被具象化成各种场景,而在这个黑暗的童话世界,分裂出另一个更为强大的自己去对抗那些妖魔鬼怪。这才是「睡前妄想症」最靠近「解离性障碍」的部分;

于是,一些自媒体把最吸引眼球的结论抽取出来——有「睡前妄想症」的人,是童年遭受了巨大的创伤。

这不是追 A,更不是底层逻辑,而是停留在表象地吸引眼球。


建构与硬凑

我不反感知识的「类比」和「极致表征压缩」,因为这样更好让人理解抽象的概念。但如果这个类比和极致表征压缩无法进行强逻辑的推理展开,甚至在推理的过程中发现其结论是透过断章取义得来的,那这就不是解构-建构的过程,更像是生拉硬凑而来的结论,即「概念炼金术」。

但这是追 A 过程中的必经阶段,也是人这个生物的「基础设定」。18~28岁是一个人世界观进一步构建的时期,世界观构建期最大的局限性来源于「我们手上只有这么多积木」,这些来源于童年的积木确实可以从结构上搭建出小时候无法搭建的风格,但也确实无法媲美通过深挖基坑钢筋水泥搭建出来的楼房。

但同时,这个时期人们又对认识世界有强烈的「自我意识」,即「我才能看到这个世界的真正规律」,于是人们开始用这些童年的积木来创造搭房子以外的创意,例如把它玩成多米诺、异形化保龄球游戏、上色绘图等等。于是「积木」和「通过积木来寻找世界规律」之间就变成了抽象的、甚至让大部分人难以理解的「炼金术化合」,具体呈现就是喜欢把两个看似毫无关系的概念「缝合」在一起。

说来羞耻,比如我在19岁的「散文集」里,把火车轨道的交错比喻成「无性繁殖」的轨道带着人们去不同的城市「有性交叉」。(操……)

这个时期的思维会透过模仿哲学语言、结构性思维来表达对世界的探索过程,而真正的认识构建,是随着前额叶皮质的成熟,理性思考作为主导的时候,开始理解「深挖基坑」和「钢筋水泥」之于建筑物的意义时,这便是底层逻辑,也就是在「重建童年花园」的过程中,将「积木」扔掉,重新开始学习如何搭建房子——但是最开始那些用积木去理解世界的经历并不会被浪费,它们是很好的抽象解构的思维训练和预备。就像练字的过程,先从拓印临摹,到白纸上仿写,然后某一天突然理解了自己在一撇一捺的笔画里挥毫泼墨的情绪,于是便有了属于自己的行云流水。

但这件事其实和「睡前妄想症」是相似的。睡前妄想症将大量的现实意义和知识验证无视后,得出了一个对于世界重新认知的结论,有的人会真的将睡前妄想的结果当真,比如他会觉得这是所谓的「天启」,是某种意义上的神谕,以此作为麻痹自己拒绝面对现实世界的「特权」。「概念炼金术」有一样的快感,人们将两个词炼合后,创造出一个类似真理的超浓缩结论,比如「懂得享受孤独的人才会获得成功」,这个炼金的过程,完全无视了追 A 和构建底层逻辑的过程,而变成了一个让人得到即时真相反馈的「思维捷径」,看似在思考,实际上只是在进行语义堆叠。

而这种以为可以透过思维捷径,去获得别人需要花大量时间、经历、事件才能看到的结论,甚至用这种方式去否定时间、经历和事件的重要,从而以自己「看到的世界才是真实世界」的方式去定义他人的世界,这才是真正的「午夜白日梦」。

Merry Christmas🎄

2024年12月25日 11:27

原本,按照自己的想法是不准备再写文章的。前段时间,自己抽了那么一点点的时间,做了一个个人页面,http://i.oba.by .期间,杜郎杜郎给提了不少建议。但是鉴于自己 ps 修图的水平实在有限,所以最终很多东西也没达到自己想要的效果。

然而,昨天看下面的足迹地图的时候,发现出问题了,全部被贴上了未获取商用授权的水印。

这就很离谱,后来登录百度地图开发者,才发现一个问题,那就是认真的时候不小心给认证成了企业开发者,这尼玛就离谱。当时还在想,为什么提示填写企业邮箱更容易认证通过。

后来才发现,默认就是认证企业开发者,个人开发者被藏在了隐蔽的地方。只能切换账号重新认证。

不过这么一来,那么地理编码就会出现问题,因为目前接入的地理位置已经超过 30 个。调用这个接口就会收到下面的提示:

的确,各种限制无处不在。不过好在之前设计的时候给每个地点预留了 gps 坐标信息,如果已经有了 gps 坐标,那么就不会再调用 jsapi 进行解析。

添加服务端 ak,直接后台处理坐标之后,写入数据库:

def process_location_cordinate(self, request):

    baidu_key_set = MapKey.objects.filter(server_key__isnull=False).last()
    if baidu_key_set is None:
        return ErrorResponse(msg='请先配置百度地图服务端 key')

    locations = Location.objects.all()
    successed = []
    for l in locations:
        if l.latitude is None or l.lontitude is None:
            lng,lat = get_location_cordinate(l.name, baidu_key_set.server_key)
            if lng is not None and lat is not None:
                l.latitude = lat
                l.lontitude = lng
                l.save()
                print(l)
                successed.append(l)
    return DetailResponse(self.get_serializer(successed, many=True).data)

地理位置解析代码:

def get_location_cordinate(location_name, server_key):
    resp = requests.get('https://api.map.baidu.com/geocoding/v3/?address='+location_name+ '&output=json&ak='+ server_key)

    print(resp.json())
    js = resp.json()
    if js['status'] == 0:
        return js['result']['location']['lng'],js['result']['location']['lat']
    return None, None

在处理之前,去后台设置 服务端 ak。

相关代码已经更新,见开源项目:https://github.com/obaby/BabyFootprintV2

再次祝大家圣诞快乐,嘻嘻

RevolverMaps下线了

2024年11月24日 01:09

我的访客记录页面本有一个3D的地球图案,用以记录和实时显示当前正在浏览此页面的用户,是个非常漂亮的动态组件,今天发现不显示了,一开始以为是DNS解析的问题,结果排查下来发现是这个服务下线了,官网也关了,只留下了两句话:

RevolverMaps has shut down.
Many thanks to all users and supporters of the service!

—— https://www.revolvermaps.com/

自从玩博客以来,从Web 2.0时代至今,用过了很多有意思的插件、组件,还有许多的主题、第三方图床、音乐服务。这个3D地图是我自接触它就一直用到今天从未想过舍弃的组件,至少有10年以上,不知道RevolverMaps团队是资金出了问题还是单纯地不玩了。在网页存档网站搜索了一番,favicon11月7日都还是正常的,favicon11月16日已经下线服务了,关站应该就是在这期间里的某一天。

实在惋惜,虽然再次印证了第三方服务随时会跑路的定律,但还是感谢RevolverMaps的陪伴!

以前的截图,上面的3D地球图案就是RevolverMaps


除非注明,三棵树阁文章均为原创,转载请以链接形式标明本文地址
本文链接:http://www.sksren.com/archives/1994.html

我的足迹【终极完整版】 — 我又更新啦!!!

2024年11月18日 13:41

我的足迹这个东西,周末实现的方法,终究感觉不高级的样子。就是看起来平平无奇,除了那几个点点,剩下的貌似也没什么意思。

扶苏给留言写到他也做了一个足迹页面,说可以作为参考。去参观膜拜了一番,感觉 js 实现的就是要高级一些。

为什么?因为 js 实现的 tm 能动啊。

原本不想写 js 的,主要是懒,实在是不想写代码。但是,但是看到这个东西,难免心动,然后就食言了。我又做了一个。

然后,还是先来看效果吧:

这个是不是看起来就高级了一些?主要是支持点击事件。

代码中定义了三组内容:

locations 点亮城市
passed_locations 途径城市
out_China_locations 国外城市 这一部分加入了经纬度信息,百度地图的反向查询,查出来的坐标是错误的,所以就独立处理了。
    var out_China_locations = [{
        city: "清迈",
        text: "泰国清迈",
        mark: "已经游玩",
        longtitude: 98.96095,
        latitude: 18.79325
    },
    {
        city: "清莱",
        text: "泰国清莱",
        mark: "已经游玩",
        longtitude: 99.72588,
        latitude: 19.903138
    }];

另外,在使用改代码的时候,还需要找两个头像文件,分别用来进行地图打点:

// 创建小车图标
                    var myIcon = new BMapGL.Icon("https://h4ck.org.cn/avatar/avatar_circle-256.png", new BMapGL.Size(26, 26));
                    // 创建Marker标注,使用小车图标
                    // var pt = new BMapGL.Point(116.417, 39.909);
                    var marker = new BMapGL.Marker(point, {
                        icon: myIcon
                    });

点击时间代码,需要修改域名:

var city = locations[i].city;
            var text = "\r\n <a target='_blank' href='" + "https://h4ck.org.cn/?s=" + locations[i].text + "'>  https://h4ck.org.cn/?s=" + locations[i].text + "</a>";

原来的效果:

修改之后,高级感是不是瞬间就有了呢,嘻嘻。

开源代码地址:

https://github.com/obaby/BabyFootprint

参考文档:

https://lbsyun.baidu.com/jsdemo.htm#cLocation

最终效果预览:

https://h4ck.org.cn/footprint/

 

更新:

上面的内容虽然够用了,但是每次还要更新代码,这多蛋疼啊。所以,我又更新了,这次我直接加了一个后台,哈哈哈

Baby 足迹地图

 

简介:

 

基于百度地图的足迹地图。

功能

 

  • 支持后台添加位置信息
  • 支持添加带gps坐标的位置信息
  • 支持自定义marker图标

安装运行:

docker运行:

docker run -d -p 10086:10086 obaby/baby-footprint:1.0

 

python 3.8 – 3.10

pip install -r requitements.pip

启动服务 建议使用nginx反代:

 

python manage runserver 0.0.0.0:10086

后台登录地址:

 

http://127.0.0.1:10086/admin/

登录账号:obaby
默认密码:123456

修改:

 

前端页面修改js,static/js/footprint.js 编辑以下代码替换默认图标:

var location = locations[i];
var city = locations[i].name;
var text = "\r\n <a target='_blank' href='" + "https://h4ck.org.cn/?s=" + locations[i].text + "'>  https://h4ck.org.cn/?s=" + locations[i].text + "</a>";
var mark = locations[i].mark;
var marker_image = "https://h4ck.org.cn/avatar/avatar_circle-256.png";
if (location.is_passed ){
    marker_image = "https://h4ck.org.cn/avatar/avatar-2.png";
}

截图:

 

后台首页:

 

添加地点:

 

(如果不带gps坐标或者坐标无效,将会通过百度地图api解析gps坐标)

列表:

 

首页:

 

扩展内容 nginx反代:

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name footprint.h4ck.org.cn ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/footprint.h4ck.org.cn;

        ssl_certificate /home/lighthouse/footprint.h4ck.org.cn_nginx/footprint.h4ck.org.cn_bundle.pem;
        ssl_certificate_key /home/lighthouse/footprint.h4ck.org.cn_nginx/footprint.h4ck.org.cn.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
location /static/ {
       alias    /home/wwwroot/babyfootprint/static/;
}

location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;

        proxy_pass http://127.0.0.1:10099;
        proxy_http_version 1.1;
proxy_set_header Accept-Encoding "";
}
        access_log  /home/wwwlogs/footprint.h4ck.org.cn.log;
    }

11.19 更新内容:

增加文章链接,打卡图片链接:

新效果图:

预览地址:

https://footprint.h4ck.org.cn

代码地址:

https://github.com/obaby/BabyFootprintV2

创建一个我的足迹地图

2024年11月16日 17:41

关于我页面,有个个人足迹的图片。

这个图片最早是通过google maps的足迹地图来生成的。

谷歌地图

然而,好景不常,这个东西现在也下架了,今年又去了很多地方,但是这个图片要更新就变得非常麻烦,总不能用ps往上打点吧?这也有点太智障了。于是想着通过地图来实现这个功能,高德或者百度,上午试了一下高德,发现免费的静态地图,最多只能添加10个marker,这尼玛是出来恶心姐姐我的吗?就离谱。

下午看了下百度的要好很多,于是下午折腾了一下,把足迹点,通过代码拼成url直接添加图片就能显示了,这个还是不错的,最终效果如下:

我的足迹

其中粉色点点是最起码呆过一段时间的,黄色的点点是途径点。

处理的代码也比较简单,不过最开始用的高德,于是gps坐标获取用的高德的api,需要提供高德的key。

静态地图用的百度的,所以又需要百度地图的ak,这个ak必须用服务端的ak哈。全部代码如下,没做配置功能,需要的自己改改代码就行了(运行前 pip install requests 依赖库):

import time

import requests


def amap_geodecode(addr):
    try:
        para = {
            'key': '高德的key',  # 高德地图开放平台申请的key
            'address': addr  # 传入地址参数
        }
        url = 'https://restapi.amap.com/v3/geocode/geo?'  # 高德地图API接口
        req = requests.get(url, para)
        req = req.json()
        print('-' * 30)
        print(req)
        m = req['geocodes'][0]['location']
        print(addr)
        print(m)
    except:
        return None
    return m


# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
    url_bast = 'https://api.map.baidu.com/staticimage/v2?ak=<百度的ak>&width=900&height=800&zoom=5&center=103.8319522831,36.0615585627&markerStyles=0xFF0000|0x808000&markers='
    city_list = ['北京','上海','深圳', '东营','连云港','锡林郭勒盟','赤峰','承德','济南','泰安','枣庄','昆明','长沙','湘潭','株洲','日照','威海','烟台','深圳','广州','西安','临沂','潍坊','青岛','大理','清迈','海口','三亚','蜈支洲岛','清莱']
    pass_city_list = ['天津','德州','景德镇','衢州','佛山','无锡']

    print('添加点亮城市:')
    cord_list = []
    visited_marker_style_list = []
    for c in city_list:
        m = amap_geodecode(c)
        if m:
            v = '' + m
            cord_list.append(v)
            visited_marker_style_list.append('m,V,0xFF69B4')
        time.sleep(2)
    print('添加途径城市:')
    for c in pass_city_list:
        m = amap_geodecode(c)
        if m:
            v = '' + m
            cord_list.append(v)
            visited_marker_style_list.append('s,P,0xFFFF00')
        time.sleep(2)

    print(cord_list)
    print('|'.join(cord_list))
    print('最终url:')
    print(url_bast + '&markerStyles=' + '|'.join(visited_marker_style_list) + '&markers=' + '|'.join(cord_list))

别问为啥这么搞,问就是懒得改了,哈哈哈。添加图片直接使用最后的url即可。以后足迹点多了之后,修改list重新生成url即可。

唯一的缺点,不支持国外的坐标,我的泰国的坐标标不上,不过也无所谓了,反正就一个泰国而已。

更多定制化功能,参考百度地图的相关开发文档:

https://lbsyun.baidu.com/faq/api?title=static/prepare

https://lbsyun.baidu.com/faq/api?title=static/markerStatic

https://lbsyun.baidu.com/faq/api?title=static/heightStatic

给自己做一个旅行地图吧(2.0升级版)

2024年11月19日 10:34
写在最前面 给“照片的墙”一栏加上了旅行地图,还挺不错的,这么好玩的东西一定要分享哈【可点击这里查看效果】,感谢互联网上各位大佬的无私分享,终于实现了地图 2.0升级版,排名不分先后:空木白博客,吴佳轶的博客,荒野孤灯博客 。 2024.1...

利用Leaflet的想法构建足迹地图

2024年9月29日 14:38

前言

足迹地图我很早就知道咯,一直没有办法实现它,大发的地图插件Marker Pro很喜欢,但只是看看而已。直到发现了它——Leaflet,一个开源JavaScript库,适用于适合移动设备的交互式地图。
只不过我的博客在国内,想着多一事不如少一事,图源换成国内的应该好点儿(我换成高德了),原理它差不多。就像博友说的,使用国外图源,一不小心,把一小块地画给国外,就是勾结外部势力了。话不多说,上教程。

步骤

我的想法是新建页面模版,独立页面显示。

1、准备工作

新建footprint.js文件,footprint.js文件应包含你的足迹点数据,上传这个文件到你主题目录的js文件里,比如:

/wp-content/themes/your-theme/js/footprint.js

 

footprint.js文件的内容

const footprint = [ ["<b>银川</b><i>Yinchuan</i><a href='https://www.duanxiansen.com/84.html/'>银川镇北堡西部影视城三日游</a>", 38.46667, 106.26667], ["<b>榆中</b><i>Yuzhong</i><a href='https://www.duanxiansen.com/1303.html/'>记第一次滑雪</a>", 36.0620781, 103.8318566], ["<b>白银</b><i>Baiyin</i><a href='https://www.duanxiansen.com/1115.html/'>游黄河石林景区(公司第一次团建)</a>", 36.5340173, 104.1467575], // 添加更多点 ];

 

2、创建自定义页面模版文件

新建page-map.php文件,放在你的主题页面模版文件夹里。

<?php
/*
Template Name: 足迹地图
*/

get_header(); ?>

<style>
#map {
    width: 100%;
    max-width: 1200px; 
    height: 500px; 
    margin: 0 auto; 
}
</style>

<div id="map" class="other-map"></div>

<script src="https://webapi.amap.com/maps?v=1.4.15&key=您的高德地图API密钥"></script>

<script type="text/javascript" src="<?php echo get_stylesheet_directory_uri(); ?>/js/footprint.js"></script>

<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
    var map = new AMap.Map('map', {
        center: [116.397128, 39.916527],
        zoom: 4
    });

    if (typeof footprint !== 'undefined' && footprint.length > 0) {
        for (let i = 0; i < footprint.length; i++) {
            const [popupText, lat, lng] = footprint[i];

            var marker = new AMap.Marker({
                position: new AMap.LngLat(lng, lat),
                map: map
            });

            marker.on('click', function() {
                var infoWindow = new AMap.InfoWindow({
                    content: popupText,
                    offset: new AMap.Pixel(0, -30)
                });
                infoWindow.open(map, marker.getPosition());
            });
        }
    } else {
        console.error('footprint array is undefined or empty');
    }
});
</script>

<?php get_footer(); ?>

自行申请高德地图API密钥。注意上述代码中js的路径

/js/footprint.js"

结尾

过程很复杂,我简化了步骤,直接操作会很简单,不过相比较使用Leaflet,任有许多不完美之处,比如点击标记点显示文章图片,Leaflet会自动生成缩略图,而这个显示原图,所以我去掉了图片显示。鼠标滑过标记点,Leaflet会自动显示标记点文章,而这个需要点击标记点,而且点开之后需要手动关闭才能浏览下个标记点。Leaflet则不需要,随便点击空白处就关闭了。相比较,Leaflet更完美,体验感更足。

 

《黑神话:悟空》修改器+地图

2024年8月24日 21:42

这几天一直在B站看游戏up主直播,不过看的是真累啊。一个黑熊打了三个小时,三个boss一共打了九个小时,后来为了看剧情,up主开挂了。哈哈哈。

其实我对于魂类游戏也不是很感冒,主要是手残,玩不动,这次主要是还是想看剧情,所以买了。网上的破解版,我试过一个了,是假的,几年前的试玩版本,可以不用尝试了。目前带着娃一块玩到第二回了。

鉴于自己手残,所以就上修改器了,哈哈哈。

游戏截图:

修改器截图:

修改器【风灵月影】(来源3dm,不是我自己开发的哈)下载:

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

https://www.123pan.com/s/ucY7Vv-27dAA?提取码:A2JM

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

黑神话地图:

https://www.gamersky.com/tools/map/wukong/?mapId=48

❌
❌