最近出了好幾個(gè)小程序可以查看你周邊地區(qū)當(dāng)前疫情確診人數(shù)的情況,就比如下面這種的:
這張圖對(duì)于身為小白的我們可不可以自己做一個(gè)呢?
答案當(dāng)然是肯定的,這里面涉及到的技術(shù)點(diǎn)就是地圖上的那些點(diǎn)是如何標(biāo)記出來(lái)的。
這里的地圖我們使用騰訊地圖來(lái)實(shí)現(xiàn),首先進(jìn)入到騰訊位置服務(wù)的首頁(yè)( https://lbs.qq.com/index.html ),進(jìn)行登錄操作,用 QQ 也好微信也好,反正先登錄上去。
然后在控制臺(tái)中新建一個(gè) key ,這個(gè) key 是專屬于你一個(gè)人使用的,所以千萬(wàn)不要外傳哦~~~
這里我們新建一個(gè)專門用于本次疫情地圖的 key ,名稱輸入完成后,再輸入驗(yàn)證碼點(diǎn)擊提交即可,這時(shí)會(huì)彈出來(lái)了一個(gè)讓你去設(shè)置 key 的提示。
這里我們就獲得了自己的 key (小編已刪除此 key ,請(qǐng)不要直接使用小編所創(chuàng)建的 key),點(diǎn)擊設(shè)置進(jìn)入設(shè)置頁(yè)面:
可以看到,這里可以設(shè)置這個(gè) key 所應(yīng)用的茶品,默認(rèn)是 JavaScriptAPI ,我們還可以在微信小程序、APP、或者 WebServiceAPI(服務(wù)器調(diào)用) 中使用。
這里其實(shí)不需要多余的設(shè)置,直接點(diǎn)擊保存即可。我們本次示例所使用到的功能都是最基礎(chǔ)的功能。
key 設(shè)置完成后我們看一下騰訊地圖的 API ,這里主要是看 JavaScript API ,鏈接:https://lbs.qq.com/javascript_v2/index.html 。
我們本次要用到的功能是覆蓋物,其他的感興趣的同學(xué)可以看一看,不感興趣的同學(xué)可以直接略過(guò),點(diǎn)開(kāi)覆蓋物查看今天的正題。
直接看代碼好沒(méi)意思,點(diǎn)擊查看示例,可以一邊看示例,一邊看代碼,順手改改,看看能不能正常運(yùn)行。
點(diǎn)擊查看示例以后,就變成下面這個(gè)樣子了:
這里可以看到他的中心點(diǎn)是在北京,實(shí)際上是由這段代碼來(lái)指定的:
var center = new qq.maps.LatLng(39.916527,116.397128);
var map = new qq.maps.Map(document.getElementById('container'),{
center: center,
zoom: 13
});
如果小編這里要改成上海的話只需要修改這里的坐標(biāo)值即可,那么上海的坐標(biāo)值我能去哪里查找呢?
別急,這里就要說(shuō)到今天會(huì)用到的另一個(gè)功能點(diǎn),坐標(biāo)拾取器,騰訊也提供了這樣的服務(wù),鏈接為:https://lbs.qq.com/tool/getpoint/index.html ,他是長(zhǎng)這個(gè)樣子的:
比如小編這里將地圖的中心點(diǎn)改成人民廣場(chǎng)地鐵站,那么直接將上面的坐標(biāo) Copy 出來(lái),放在剛才的代碼中再執(zhí)行一下,就可以看到當(dāng)前的地圖中心點(diǎn)編程了人民廣場(chǎng)。
那么,接下來(lái)的事情就好辦了,我們只需要知道附近的疫情的數(shù)據(jù),將這些有疫情的區(qū)域全都標(biāo)記在地圖上就好了,小編這里就不查真實(shí)的疫情情況了,隨便在地圖上取幾個(gè)點(diǎn)做演示。
結(jié)果就變成了這樣:
接下來(lái)問(wèn)題來(lái)了,我們看到的地圖上的標(biāo)記好像圖形和這個(gè)不一樣嘛,這個(gè)長(zhǎng)得也有點(diǎn)忒丑了點(diǎn),當(dāng)然,騰訊地圖給我們提供的 API 同樣支持自定義的 icon ,示例如下:
emmmmmmmmmmm,手頭沒(méi)有找到好看一點(diǎn)的 icon ,隨便找了一張代替,大家理解到位就好。
只要我們替換上合適的 icon ,就可以做出和文章最前面那個(gè)小程序一樣漂亮的疫情地圖了。
最后的沒(méi)有替換 icon 的代碼小編還是順手貼一下吧:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>疫情地圖</title>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=你的key"></script>
<style type="text/css">
*{
margin:0px;
padding:0px;
}
body, button, input, select, textarea {
font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
}
#info{
width:603px;
padding-top:3px;
overflow:hidden;
}
.btn{
width:112px;
}
#container{
min-width:600px;
min-height:767px;
}
</style>
<script>
var init = function() {
var center = new qq.maps.LatLng(31.232708,121.475537);
var map = new qq.maps.Map(document.getElementById('container'),{
center: center,
zoom: 13
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.232105,121.481667),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.235114,121.471281),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.227261,121.480465),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.226821,121.471796),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.216545,121.467419),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.216839,121.480808),
map: map
});
//創(chuàng)建marker
var marker = new qq.maps.Marker({
position: new qq.maps.LatLng(31.218454,121.492825),
map: map
});
}
</script>
</head>
<body onload="init()">
<div id="container"></div>
</body>
</html>
這里只需要替換一個(gè)可用的 key 即可使用。
到這里,你可以把所有已經(jīng)有確診患者小區(qū)的經(jīng)緯度獲取到,然后全部標(biāo)注到地圖上,每天對(duì)標(biāo)注進(jìn)行實(shí)時(shí)更新,這樣就制作成了一張防疫地圖了,有興趣的同學(xué)可以自己去嘗試嘗試。
實(shí)際上騰訊地圖上還有很多很好玩的同時(shí)也很炫酷的功能,如以下圖形:
大家可以自己去探索。