leaflet風(fēng)圈 leaflet.js

https://leafletjs.com/reference-1.6.0.html

臺風(fēng)風(fēng)圈

<link rel="stylesheet" type="text/css" href="leaflet/leaflet.css">
<div id="map" style="width: 100vw;height: 100vh"></div>
<script type="text/javascript" src="leaflet/leaflet.js"></script>
let map = L.map('map').setView([28, 121.7], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a >OpenStreetMap</a> contributors' })
.addTo(map);
L.marker([28, 121.7]).addTo(map)
.bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
.openPopup();
  /**
   利奇馬 2019年08月10日00時 中心位置: 121.7 E, 28 N 最大風(fēng)力: 16級 最大風(fēng)速: 52 m/s 中心氣壓: 935百帕 
   移動速度: 16公里/時 移動方向: 西北
   七級風(fēng)圈半徑: 280 - 380 km
   十級風(fēng)圈半徑 : 100 km
   十二級風(fēng)圈半徑: 40 km
    *
**/
  const TF = {
    time: "2019-08-10T00:00:00",
    longitude: 121.7,
    latitude: 28,
    strong: "超強臺風(fēng)(Super TY)",
    power: 16,
    speed: 52,
    move_dir: "西北",
    move_speed: 16,
    pressure: 935,
    radius7: 380,
    radius10: 100,
    radius12: 40,
    radius7_quad: {ne: 380, se: 380, sw: 350, nw: 280},
    radius10_quad: {ne: 100, se: 100, sw: 100, nw: 100},
    radius12_quad: {ne: 40, se: 40, sw: 40, nw: 40}
  }
    // 求出方位半徑方向上弧形經(jīng)緯度
   const getPoints = (center, cradius, startAngle) => {
      let radius = cradius / 100
      let pointNum = 90
      let endAngle = startAngle + 90
      let points = []
      let sin
      let cos
      let x
      let y
      let angle

      for (var i = 0; i <= pointNum; i++) {
        angle = startAngle + (endAngle - startAngle) * i
                / pointNum;
        sin = Math.sin(angle * Math.PI / 180);
        cos = Math.cos(angle * Math.PI / 180);
        x = center[0] + radius * sin;
        y = center[1] + radius * cos;
        points.push([x, y]);
      }
      return points
    }

let r7Ne = getPoints([TF.latitude, TF.longitude],  TF.radius7_quad.ne, 0)
let r7Nw = getPoints([TF.latitude, TF.longitude],  TF.radius7_quad.nw, 90)
let r7Sw = getPoints([TF.latitude, TF.longitude],  TF.radius7_quad.sw, 180)
let r7Se = getPoints([TF.latitude, TF.longitude],  TF.radius7_quad.se,  270)
let polygon7  = L.polygon([
          ...r7Ne, // 東北
          ...r7Nw, // 西北
          ...r7Sw, // 西南
          ...r7Se, // 東南
        ], {smoothFactor: .1, fillColor: 'rgb(0, 176, 15)', color: 'rgb(0, 176, 15)', weight: 1 }).addTo(map)
let r10Ne = getPoints([TF.latitude, TF.longitude],  TF.radius10_quad.ne, 0)
let r10Nw = getPoints([TF.latitude, TF.longitude],  TF.radius10_quad.nw, 90)
let r10Sw = getPoints([TF.latitude, TF.longitude],  TF.radius10_quad.sw, 180)
let r10Se = getPoints([TF.latitude, TF.longitude],  TF.radius10_quad.se,  270)
let polygon10  = L.polygon([
          ...r10Ne, // 東北
          ...r10Nw, // 西北
          ...r10Sw, // 西南
          ...r10Se, // 東南
        ], {smoothFactor: .1, fillColor: 'rgb(248, 213, 0)', color: 'rgb(248, 213, 0)', weight: 1 }).addTo(map)
let r12Ne = getPoints([TF.latitude, TF.longitude],  TF.radius12_quad.ne, 0)
let r12Nw = getPoints([TF.latitude, TF.longitude],  TF.radius12_quad.nw, 90)
let r12Sw = getPoints([TF.latitude, TF.longitude],  TF.radius12_quad.sw, 180)
let r12Se = getPoints([TF.latitude, TF.longitude],  TF.radius12_quad.se,  270)
let polygon12  = L.polygon([
          ...r12Ne, // 東北
          ...r12Nw, // 西北
          ...r12Sw, // 西南
          ...r12Se, // 東南
        ], {smoothFactor: .1, fillColor: 'rgb(255, 0, 0)', color: 'rgb(255, 0, 0)', weight: 1 }).addTo(map)

Image text
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棺棵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子单雾,更是在濱河造成了極大的恐慌掘剪,老刑警劉巖陪毡,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡而叼,警方通過查閱死者的電腦和手機姿骏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門糖声,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人分瘦,你說我怎么就攤上這事蘸泻。” “怎么了嘲玫?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵悦施,是天一觀的道長。 經(jīng)常有香客問我去团,道長抡诞,這世上最難降的妖魔是什么穷蛹? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮昼汗,結(jié)果婚禮上肴熏,老公的妹妹穿的比我還像新娘。我一直安慰自己顷窒,他們只是感情好蛙吏,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鞋吉,像睡著了一般螟炫。 火紅的嫁衣襯著肌膚如雪泻红。 梳的紋絲不亂的頭發(fā)上芝发,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天锐秦,我揣著相機與錄音,去河邊找鬼赊锚。 笑死坷檩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的改抡。 我是一名探鬼主播矢炼,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阿纤!你這毒婦竟也來了句灌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤欠拾,失蹤者是張志新(化名)和其女友劉穎胰锌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藐窄,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡资昧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荆忍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片格带。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刹枉,靈堂內(nèi)的尸體忽然破棺而出叽唱,到底是詐尸還是另有隱情,我是刑警寧澤微宝,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布棺亭,位于F島的核電站,受9級特大地震影響蟋软,放射性物質(zhì)發(fā)生泄漏镶摘。R本人自食惡果不足惜嗽桩,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凄敢。 院中可真熱鬧碌冶,春花似錦、人聲如沸贡未。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俊卤。三九已至,卻和暖如春害幅,著一層夾襖步出監(jiān)牢的瞬間消恍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工以现, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狠怨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓邑遏,卻偏偏與公主長得像佣赖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子记盒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載請注明出處:王亟亟的大牛之路 初衷以及傳送門:因為要做一個防碰撞的警報/預(yù)警系統(tǒng)憎蛤,所以帶著小伙伴最近在整地圖相...
    王亟亟閱讀 3,986評論 0 5
  • 轉(zhuǎn)載請注明出處:王亟亟的大牛之路 上一次是用link形式寫的demo的東西,這次把打包方式集成到了以npm web...
    王亟亟閱讀 1,008評論 0 1
  • 目錄: Android:Android 0.*Android 1.*Android 2.*Android 3.*A...
    敲代碼的令狐蔥閱讀 3,853評論 0 2
  • 1.圖片瀏覽控件MWPhotoBrowser 實現(xiàn)了一個照片瀏覽器類似 iOS 自帶的相冊應(yīng)用纪吮,可顯示來自手機的圖...
    萬忍閱讀 1,500評論 0 6
  • 今天晚飯過后俩檬,我拿著我的足球到樓底下去踢足球,可是我踢著踢著碾盟,發(fā)現(xiàn)一個人踢有點太無聊了棚辽,于是我就到小區(qū)的中心花園活...
    張瑾瑞閱讀 506評論 0 3