(二)初见leaflet

在https://mapshaper.org上将shp数据转换成geojson后,下一个任务是利用leaflet在网页上显示这个地图。

话不多说,直接上代码吧。

首先是最简单的版本:

<html>    

<head>       

 <title>Leaflet Test</title>                

<link rel="stylesheet" href="path/to/leaflet.css"/>            

<!-- <link>标签链接一个外部样式表,rel表示当前文档与被链接文档之间的关系,stylesheet表示外部样式表;href表示被链接文档的位置。 -->                

<script src="path/to/leaflet.js"></script>               

<!-- 插入一段js脚本。src规定外部脚本文件的 URL。 -->       

<!--        

在 https://leafletjs.com/download.html 里有另一种方法:使用在线版本的leaflet,如:                  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"         integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA=="         crossorigin=""/>        

<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"         integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA=="         crossorigin=""></script>                 

并且为了避免潜在安全问题,推荐确保子资源完整性。(即integrity与crossorigin部分)         -->    

</head>       

<body>       

<div id='map' style="width: 600px; height: 400px;"></div>       

<!-- 定义文档中的分区 -->       

<script src="path/to/a_javascript" type="text/javascript"></script>       

<script>           

var my_map = L.map('map',{center: [51.505, -0.09],zoom: 13});           

/*L.map()方法生成一个地图             

L.map(<String> id, <Map options> options?)             

Instantiates a map object given the DOM ID of a <div> element and optionally an object literal with Map options.            */           

// 可以 L.map.setView();           

L.geoJSON(test_map).addTo(my_map);

</script>   

</body>

</html>

这个版本实现后,我就可以在网页上显示那个geojson文件了(虽然转换为了js文件)。

过程中有两个坑:

一是刚开始忘了打<div>中的style项,导致最后什么都没出来。

二是弄好后打开网页发现一片蓝,一度怀疑出了神奇BUG,后来发现只是放大比例太大:(

然后就开始做些优化,加些交互了——

1. 修改zoom,我再也不想一打开网页就是一片蓝了

2. 修改map的宽与高,使其充满整个浏览器屏幕

3. 修改my_map的center,(0,0)多好看(强迫症

4. 点击显示经纬度

5. 给每个polygon填充不同的颜色

6. 设置一个显示我所在位置的marker

7. 设置显示鼠标悬浮国家名称的功能

最终代码如下:

(引用编辑起来太麻烦了……直接上图)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,450评论 1 45
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 1 MAP对象 该Map毒性代表您的网页上的地图。他公开了方法和属性,是您能够以编程方式更改地图,并在用户与之交互...
    Cyril丶阅读 822评论 0 0
  • Mr.李今天陪终于如愿陪纯纯放了次风筝,虽然风筝脱线而飞。李先生式的安慰人:“虽然风筝飞跑了,但是咱这风筝质量确实...
    Fantali阅读 144评论 0 0
  • 开学第一天学校中午不开火,来回接送累的够呛!
    陆克丽阅读 591评论 0 1