个人博客显示地图

最终效果可参考https://www.haruhi.fans/?page_id=3016,主要功能实现嵌入地图,点亮地区(需要手动维护),地图可互动定位等,下图简单概览。

基本原理

利用百度地图和高德地图的免费接口,把内容嵌入到网页中。

步骤

注册开发者

前往高德或者百度地图开放平台,注册/登录一个账号。这边强烈建议使用高德https://lbs.amap.com/,百度的审核很慢而且步骤十分繁琐。

点击右上角注册,按照步骤注册完成即可

申请api

前往个人主页,点击管理key(图上的key数量1是我已经创建过了,你应该是0)

接着点击右上角,创建应用即可,按步骤要求填写完成。

完成后,会出现key和密钥,这一步完成

调整样式

点击这里https://lbs.amap.com/api/javascript-api-v2/getting-started,进入官方文档。

点击下面的亲手试一试,就出现了动态编辑器和图,功能可参考左边,具体函数参考文档。

可参考我的,使用前先在下面填好你的key。如果需要点亮新的部分修改下面的Todo部分,填写市级的城市行政区号即可(后两位为0)

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
  <style>
    html,
    body,
    #container {
      width: 100%;
      height: 100%;
      margin: 0;
    }
  </style>
  <title>我的足迹</title>
</head>

<body>
  <div id="container" style="width: full; height: 50vh;"></div>
  <script src="https://a.amap.com/Loca/static/mock/adcodes.js"></script>
  <script
    src="https://webapi.amap.com/maps?v=2.0&key=your-key&plugin=AMap.Scale,AMap.ToolBar"></script>

  <script>
   //全国省市的行政区号,无需修改
    var adCodes = [
    '110000', '120000', '130000', '140000', '150000', '210000', '220000', '230000', '310000', '320000',
    '330000', '340000', '350000', '360000', '370000', '410000', '420000', '430000', '440000', '450000',
    '460000', '500000', '510000', '520000', '530000', '540000', '610000', '620000', '630000', '640000',
    '650000', '710000', '810000', '820000'
];
 // 指定多个行政区号
    var depth = 1; // 指定显示的层级,0 - 省级, 1 - 市级, 2 - 区县级

    var map = new AMap.Map("container", {
      zoom: 4.5,
      center: [104.1954, 35.8587],
      pitch: 0,
      viewMode: '3D',
    });
    AMap.plugin('AMap.Geolocation', function() {
        var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true,//是否使用高精度定位,默认:true
            timeout: 10000,          //超过10秒后停止定位,默认:5s
            position:'RB',    //定位按钮的停靠位置
            offset: [10, 20], //定位按钮与设置的停靠位置的偏移量,默认:[10, 20]
            zoomToAccuracy: false,   //定位成功后是否自动调整地图视野到定位点

        });
        map.addControl(geolocation);
        geolocation.getCurrentPosition(function(status,result){
            if(status=='complete'){
                onComplete(result)
            }else{
                onError(result)
            }
        });
    });
    // 创建省份图层
    var disProvince;
    function initPro(codes, dep) {
      dep = typeof dep == 'undefined' ? 2 : dep;
      disProvince && disProvince.setMap(null);

      disProvince = new AMap.DistrictLayer.Province({
        zIndex: 12,
        adcode: codes,
        depth: dep,
        styles: {
          'fill': function (properties) {
            // properties为可用于做样式映射的字段,包含
            // NAME_CHN:中文名称
            // adcode_pro
            // adcode_cit
            // adcode
            var adcode = properties.adcode_cit;
            return getColorByAdcode(adcode);
          },
          'province-stroke': 'cornflowerblue',
          'city-stroke': 'white', // 中国地级市边界
          'county-stroke': 'rgba(255,255,255,0.5)' // 中国区县边界
        }
      });

      disProvince.setMap(map);
    }

    // 颜色辅助方法
    var colors = {};
    // Your Todo
    // 在下面添加你去过市的城市区号,因为我是精确到市,所以后两位都为0
    var city = [230100, 331100, 330800, 330700, 330600, 330500, 321100, 341700, 360400, 360100, 610500, 410300, 320400, 320200, 340100, 330400, 320600, 321200, 321000, 340300, 320300, 411400, 410100, 610400, 610300, 659001, 652300, 654200, 654000, 659005, 654300, 650100, 632200, 630100, 411200, 341300, 620600, 620300, 620200, 620900, 652800, 620700, 621100, 621200, 510800, 510700, 510600, 520300, 451200, 450200, 450900, 440800, 330100, 320500, 320100, 341100, 610100, 620500, 620100, 650500, 650400, 310000, 510100, 652900];
    var getColorByAdcode = function (adcode) {
      if (city.includes(adcode)) {
        var gb = Math.random() * 155 + 50;
        colors[adcode] = 'rgb(' + gb + ',' + gb + ',255)';
      }
      return colors[adcode];
    };

    // 初始化地图显示多个区域
    initPro(adCodes, depth);
  </script>
</body>
</html>

嵌入个人网站

如果使用的是wordpress,那么选一篇文章或者界面,复制编辑器或者我提供的html,点击加号嵌入html,粘贴完成。

以后就可以记录你的旅途啦~~~~!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇