日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mapbox-gl绘制经纬网格(Graticule)

發布時間:2024/3/7 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mapbox-gl绘制经纬网格(Graticule) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在mapbox-gl上實現經緯網格,是按照經度、緯度的一定間隔,將同經度(緯度)的坐標點,連接成直線,實現繪制經緯度網格的形式。
實現代碼

參照開源代碼,實現在地圖上進行經緯度網格的繪制。
//緯線

function makeMeridian(lng) { lng = lngFix(lng); const coords = []; for (var lat = -90; lat <= 90; lat += 1) { coords.push([lng, lat]); } return coords; }//經線 function makeParallel(lat) { const coords = []; for (var lng = -180; lng <= 180; lng += 1) { coords.push([lngFix(lng), lat]); } return coords; }//創建geojson數據 function makeFeature(coordinates, properties) { return { type: 'Feature', geometry: { type: 'LineString', coordinates }, properties }; }//修整經度,防止最大值溢出 function lngFix(lng) { if (lng >= 180) return 179.999999; if (lng <= -180) return -179.999999; return lng; } //主函數 function graticule(interval) { interval = +interval || 20; const features = []; for (var lng = 0; lng <= 180; lng += interval) { features.push(makeFeature(makeMeridian(lng), { name: (lng) ? lng.toString() + "° E" : "本初子午線" })); if (lng !== 0) { features.push(makeFeature(makeMeridian(-lng), { name: lng.toString() + "° W" })); } }for (var lat = 0; lat <= 90; lat += interval) { features.push(makeFeature(makeParallel(lat), { name: (lat) ? lat.toString() + "° N" : "赤道" }));if (lat !== 0) { features.push(makeFeature(makeParallel(-lat), { "name": lat.toString() + "° S" })); } } return { type: 'FeatureCollection', features }; }//添加經緯度圖層 const _griddata = graticule(5); map.addSource('gridline', { 'type': 'geojson', 'data': _griddata }); map.addLayer({ 'id': 'gridid', 'type': 'line', 'source': 'gridline', 'layout': { 'line-join': 'round', 'line-cap': 'round' }, 'paint': { 'line-color': '#f00', 'line-width': 1 } });

效果圖如下:
以上是5度為間隔畫的經緯度網格,拉到最北邊和最南邊,會清楚的看到,只能顯示到±85多的坐標位置。

引用內容:
https://github.com/turban/Leaflet.Graticule
https://github.com/dereklieu/cool-grid

總結

以上是生活随笔為你收集整理的mapbox-gl绘制经纬网格(Graticule)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。