export function createRect(ctx, opts = {}) {
// 圓角矩形的參數(shù)
var x = 2; // 左上角x坐標
var y = 2; // 左上角y坐標
var width = opts.width; // 寬度
var height = opts.height; // 高度
var radius =opts.height / 2; // 圓角半徑
// 開始路徑
ctx.beginPath();
// 左上角圓弧
ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y);
ctx.arcTo(x + width, y, x + width, y + height, radius);
// 右上角圓弧
ctx.lineTo(x + width, y + height - radius);
ctx.arcTo(x + width, y + height, x, y + height, radius);
// 右下角圓弧
ctx.lineTo(x + radius, y + height);
ctx.arcTo(x, y + height, x, y, radius);
// 左下角圓弧
ctx.lineTo(x, y + radius);
ctx.arcTo(x, y, x + radius, y, radius);
// 關(guān)閉路徑并填充
ctx.closePath();
ctx.fillStyle = opts.backgroundColor || "#c88400";
ctx.fill();
// 如果需要描邊猾浦,可以添加以下代碼
ctx.strokeStyle = opts.borderColor || "#7c4b00";
ctx.lineWidth = opts.borderWidth || 1;
ctx.stroke();
}
export function createText(ctx, opts = {}) {
var text = opts.text;
var textSize = opts.textSize || 12;
var color = opts.color || "#fff";
var x = opts.x || 0;
var y = opts.y || 0;
ctx.font = textSize + "px Arial"; // 設(shè)置字體樣式和大小
ctx.fillStyle = color; // 文本顏色
ctx.fillText(text, x, y);
}
export function createImage(text) {
var ramp = document.createElement("canvas");
var ctx = ramp.getContext("2d");
var textSize = 15;
var textWidth = text.length * textSize;
var padding = 10;
var width = textWidth + padding * 2;
var height = 32;
var textX = width / 2 - textWidth / 2;
var textY = height / 2 + textSize / 3;
createRect(ctx, { width, height, borderWidth: 2, borderColor: "#7c4b00", backgroundColor: "#c88400" });
createText(ctx, { text, textSize, color: "#fff", x: textX, y: textY });
return ramp;
}
export function addMarker(viewer, options = {}) {
var name = options.name || "Marker";
var longitude = options.longitude || 121.444409;
var latitude = options.latitude || 31.247417;
var height = options.height || 0;
var image = createImage(name);
viewer.entities.add({
name: name,
position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
billboard: {
image,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
properties: options,
});
}
canvas cesium marker
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泉手,“玉大人黔寇,你說我怎么就攤上這事≌睹龋” “怎么了缝裤?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長颊郎。 經(jīng)常有香客問我憋飞,道長,這世上最難降的妖魔是什么姆吭? 我笑而不...
- 正文 為了忘掉前任榛做,我火速辦了婚禮,結(jié)果婚禮上内狸,老公的妹妹穿的比我還像新娘检眯。我一直安慰自己,他們只是感情好昆淡,可當我...
- 文/花漫 我一把揭開白布锰瘸。 她就那樣靜靜地躺著,像睡著了一般昂灵。 火紅的嫁衣襯著肌膚如雪避凝。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吊履!你這毒婦竟也來了安皱?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布咒精,位于F島的核電站镶柱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏模叙。R本人自食惡果不足惜歇拆,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望范咨。 院中可真熱鬧故觅,春花似錦、人聲如沸湖蜕。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽昭抒。三九已至评也,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灭返,已是汗流浹背盗迟。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 最近項目用到騰訊地圖蚓聘,才發(fā)現(xiàn)網(wǎng)上關(guān)于騰訊地圖的文章極少腌乡,難道是太簡單了?因為項目需求夜牡,要實現(xiàn)一些效果与纽,打開騰訊地圖...
- 源碼 分析 首先包含了頭文件,主要是包含了 這個在運行的時候就可以看出,是返回交互信息的急迂。 主函數(shù)里: ros初始...
- Magic Media Marker教程:如何使用Magic Media Marker 媒體標記軟件影所,具體教程參考...
- vue + cesium 的配置已經(jīng)很復雜了,今天從1.47 升級到1.70的版本僚碎,但是發(fā)現(xiàn)報錯了猴娩。 經(jīng)過查閱,發(fā)...
- 摘自:https://blog.csdn.net/sinat_31213021/article/details/1...