无需绑卡的海外地图

最近煮波遇到了一个问题,就是需要在地图上展示一个公司的位置。如果在国内这会是很简单实现的,但是是在海外呢?各种坑!!!!!某歌、mapbox地图就需要你绑卡。注册起来非常麻烦。

那还有解决办法吗?有的兄弟,包有的。

这里的解决思路就是用前端库 leaflet + 免绑卡的瓦片源就能解决了。

这里给个简单demo:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>公司位置 - 直接可用</title>
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
    <style>
        #map { height: 500px; width: 100%; margin: 20px 0; }
    </style>
</head>
<body>
    <h1>欢迎来到我们公司</h1>
    <div id="map"></div>

    <script>
        // === 核心代码开始 ===
        // 1. 设置地图中心点(修改这里的坐标!)
        // 格式:[纬度, 经度],例如上海:[31.2304, 121.4737]
        var myCompanyLocation = [31.2304, 121.4737];
        
        // 2. 初始化地图
        var map = L.map('map').setView(myCompanyLocation, 16);
        
        // 3. 使用免绑卡的瓦片源 - 选一个喜欢的用
        // 选项1:OpenStreetMap标准版(最常用)
        L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
            maxZoom: 19,
            attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
        }).addTo(map);
        
        // 选项2:CartoDB简洁版(白色背景,更专业)
        // L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
        //     attribution: '© OpenStreetMap contributors'
        // }).addTo(map);
        
        // 选项3:Wikimedia地图(加载快)
        // L.tileLayer('https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {
        //     attribution: '© OpenStreetMap contributors'
        // }).addTo(map);
        
        // 4. 添加公司标记
        L.marker(myCompanyLocation)
            .addTo(map)
            .bindPopup(`
                <div style="padding: 10px;">
                    <h3 style="margin:0 0 10px 0; color: #333;">✧ 我们的公司 ✧</h3>
                    <p style="margin: 5px 0;"><strong>地址:</strong>上海市黄浦区南京东路123号</p>
                    <p style="margin: 5px 0;"><strong>电话:</strong>021-12345678</p>
                    <p style="margin: 5px 0;"><strong>营业时间:</strong>周一至周五 9:00-18:00</p>
                </div>
            `)
            .openPopup();
        // === 核心代码结束 ===
    </script>
</body>
</html>
复制代码
效果:

最后我们只需要更换经纬度就好了,那么经纬度也可以去找到。就是去openstreetmap官网。不过这里需要魔法。

这里拿到经纬度替换就好了。

相关推荐
敲敲了个代码5 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
张雨zy6 小时前
Pinia 与 TypeScript 完美搭配:Vue 应用状态管理新选择
vue.js·ubuntu·typescript
dly_blog6 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
消失的旧时光-19437 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
console.log('npc')7 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
用户47949283569157 小时前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我123457 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
用户47949283569158 小时前
给客户做私有化部署,我是如何优雅搞定 NPM 依赖管理的?
前端·后端·程序员
C_心欲无痕8 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
qingyun9898 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构