2.7.1 UI界面
UI界面
UI界面是指在场景上添加UI效果展示。包括状态栏,字幕,罗盘,LOGO,提示文字(TIPS)、中间十字光标等。它们都是通过响应器对象实现的。
UI界面主要包括添加(创建)、更新和删除3种操作。
下图是UI界面效果:
代码调用示例
Javascript调用
var resCompass;
//添加UI控件响应器
function addResponser() {
var mySelect = document.getElementById("Select");
var value = mySelect.options[mySelect.selectedIndex].value;
if(value == "UILogoResponser"){
addUILogoResponser();
}else if(value == "UICrossResponser"){
addUICrossResponser();
}else if(value == "UICompassResponser"){
addUICompassResponser();
}else if(value == "UITipsResponser"){
addUITipResponser();
}else if(value == "UIStateResponser"){
addUIStateResponser();
}else if(value == "UICaptionResponser"){
addUICaptionResponser();
}else if(value == "UIRectangleResponser"){
AddRectangle();
}else if(value == "UIMouseResponser"){
AddResMouse();
}else if(value == "UICompassExResponser"){
AddResCompassEx();
}
}
//移除指定UI控件响应器
function deleteResponser() {
var mySelect = document.getElementById("Select");
var value = mySelect.options[mySelect.selectedIndex].value;
map.RemoveResponser(value);//移除响应器
}
//添加Logo响应器
function addUILogoResponser(){
var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
resp.AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
resLogo = map.CreateResponser("UILogoResponser", resp);//创建响应器对象。UILogoResponser代表Logo响应器
map.AddResponser(resLogo);//添加响应器对象
}
//添加中心十字标响应器
function addUICrossResponser(){
var resp = map.CreateResponserOptions("UICrossResponser");//创建响应器配置对象,参数任意名称
resCross = map.CreateResponser("UICrossResponser", resp);//创建响应器对象。UICrossResponser代表中心十字标响应器
map.AddResponser(resCross);//添加响应器对象
}
//添加罗盘响应器
function addUICompassResponser(){
var resp = map.CreateResponserOptions("UICompassResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
resp.AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
resCompass = map.CreateResponser("UICompassResponser", resp);//创建响应器对象。UICompassResponser代表罗盘响应器
map.AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}
//添加提示文字响应器
function addUITipResponser(){
var resp = map.CreateResponserOptions("UITipsResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
resp.AddConfig("TextSize", "6");//提示文字大小
resp.AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
resTips = map.CreateResponser("UITipsResponser", resp);//创建响应器对象。UITipsResponser代表文字提示响应器
map.AddResponser(resTips);//添加响应器对象
}
//添加状态栏响应器
function addUIStateResponser() {
var resp = map.CreateResponserOptions("UIStateResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
resp.AddConfig("TextSize", "8");//文字大小
resp.AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
resp.AddConfig("StateCurrent", "true");//当前视点信息开关
resp.AddConfig("StateMouse", "true");//当前鼠标信息开关
resp.AddConfig("StateHeight", "true");//当前高度信息开关
//resp.AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
//resp.AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
//resp.AddConfig("LonShow", " 经度: ");//经度文字 可选配置
//resp.AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
//resp.AddConfig("HeightShow", " 高程:");//高程文字 可选配置
resState = map.CreateResponser("UIStateResponser", resp);//创建响应器对象。UIStateResponser代表状态栏响应器
map.AddResponser(resState);//添加响应器对象
}
//添加字幕响应器
function addUICaptionResponser() {
var resp = map.CreateResponserOptions("UICaptionResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
resp.AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
resp.AddConfig("TextSize", "10");//字体大小
resp.AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
resp.AddConfig("PlayTimes", "2");//字幕播放次数(次)
resp.AddConfig("PlayLength", "400");//字幕播放长度(像素)
resp.AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
resp.AddConfig("TextColor", "1,0,0");//文字颜色
resp.AddConfig("PlayState", "false");//播放状态
resCaption = map.CreateResponser("UICaptionResponser", resp);//创建响应器对象。UICaptionResponser代表字幕响应器
map.AddResponser(resCaption);//添加响应器对象
}
//添加矩形响应器
function AddRectangle() {
var resp = map.CreateResponserOptions("UIRectangleResponser");
resp.AddConfig("LineColor", "0.0,0.0,1.0,1.0");//设置线的颜色
resp.AddConfig("LineWidth", "2");//线宽(0-10)
resp.AddConfig("IsDragMode", "false");//是否为拖拽模式,拖拽模式下,需要按住鼠标进行绘制,默认为false
//下列二个配置可选
//resp.AddConfig("IsLoad", "false");//是否预加载
//resp.AddConfig("Points", "500,600;600,200;");//屏幕坐标,以;结尾
resCaption = map.CreateResponser("UIRectangleResponser", resp);//
map.AddResponser(resCaption);
}
var resMouse;
//添加鼠标响应器
function AddResMouse() {
var resp = map.CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
resMouse = map.CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
map.AddResponser(resMouse);
}
var resCompassEx;
//添加罗盘响应器Ex
function AddResCompassEx() {
var resp = map.CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
resp.AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
resp.AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
resCompassEx = map.CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
map.AddResponser(resCompassEx);//更新罗盘响应器配置,这里必须这么处理
}
//修改响应器
function modifyUILogoResponser(){
//注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
resp.AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
resLogo.UpdateResponserOptions(resp);//更新响应器配置项
}
C++调用
BaseObjectCOMLib::IResponserObjectPtr resCompass;//罗盘响应器对象
BaseObjectCOMLib::IResponserObjectPtr resLogo;//Logo响应器对象
CComboBox m_combo;//下拉框对象
std::string value;//下拉框内容
//添加Logo响应器
void Cf6c0UIDlg::addUILogoResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UILogoResponser");//创建响应器配置,参数任意名称
resp->AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
resp->AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
resLogo = map->CreateResponser("UILogoResponser", resp);//创建响应器对象,UILogoResponser代表Logo响应器
map->AddResponser(resLogo);//添加响应器对象
}
//添加中心十字标响应器
void Cf6c0UIDlg::addUICrossResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICrossResponser");//创建响应器配置,参数任意名称
BaseObjectCOMLib::IResponserObjectPtr resCross = map->CreateResponser("UICrossResponser", resp);//创建响应器对象,UICrossResponser代表中心十字标响应器
map->AddResponser(resCross);//添加响应器对象
}
//添加罗盘响应器
void Cf6c0UIDlg::addUICompassResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICompassResponser");//创建响应器配置,参数任意名称
resp->AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
resp->AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
resp->AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
resCompass = map->CreateResponser("UICompassResponser", resp);//创建响应器对象,UICompassResponser代表罗盘响应器
map->AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}
//添加提示文字响应器
void Cf6c0UIDlg::addUITipResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UITipsResponser");//创建响应器配置,参数任意名称
resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
resp->AddConfig("TextSize", "6");//提示文字大小
resp->AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
BaseObjectCOMLib::IResponserObjectPtr resTips = map->CreateResponser("UITipsResponser", resp);//创建响应器对象,UITipsResponser代表文字提示响应器
map->AddResponser(resTips);//添加响应器对象
}
//状态栏响应器
void Cf6c0UIDlg::addUIStateResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIStateResponser");//创建响应器配置,参数任意名称
resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
resp->AddConfig("TextSize", "8");//文字大小
resp->AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
resp->AddConfig("StateCurrent", "true");//当前视点信息开关
resp->AddConfig("StateMouse", "true");//当前鼠标信息开关
resp->AddConfig("StateHeight", "true");//当前高度信息开关
//resp->AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
//resp->AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
//resp->AddConfig("LonShow", " 经度: ");//经度文字 可选配置
//resp->AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
//resp->AddConfig("HeightShow", " 高程:");//高程文字 可选配置
BaseObjectCOMLib::IResponserObjectPtr resState = map->CreateResponser("UIStateResponser", resp);//创建响应器对象,UIStateResponser代表状态栏响应器
map->AddResponser(resState);//添加响应器对象
}
void Cf6c0UIDlg::addUICaptionResponser()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICaptionResponser");//创建响应器配置,参数任意名称
resp->AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
resp->AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
resp->AddConfig("TextSize", "10");//字体大小
resp->AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
resp->AddConfig("PlayTimes", "2");//字幕播放次数(次)
resp->AddConfig("PlayLength", "400");//字幕播放长度(像素)
resp->AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
resp->AddConfig("TextColor", "1,0,0");//文字颜色
resp->AddConfig("PlayState", "false");//播放状态
BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UICaptionResponser", resp);//创建响应器对象,UICaptionResponser代表字幕响应器
map->AddResponser(resCaption);//添加响应器对象
}
void Cf6c0UIDlg::AddRectangle()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIRectangleResponser");
resp->AddConfig("LineColor", "0.0,0.0,1.0,1.0");//设置线的颜色
resp->AddConfig("LineWidth", "2");//设置线宽,1~10
resp->AddConfig("IsDragMode", "false");//是否为拖拽模式,拖拽模式下,需要按住鼠标进行绘制,默认为false
//下列二个配置可选
//resp->AddConfig("IsLoad", "false");//是否预加载
//resp->AddConfig("Points", "500,600;600,200;");//屏幕坐标,以;结尾
BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UIRectangleResponser", resp);//创建响应器对象,UIRectangleResponser代表矩形绘制响应器
map->AddResponser(resCaption);
}
void Cf6c0UIDlg::AddResMouse()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
map->AddResponser(resCaption);
}
void Cf6c0UIDlg::AddResCompassEx()
{
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
resp->AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
resp->AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
resp->AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
map->AddResponser(resCaption);//更新罗盘响应器配置
}
//获得UI类型
void Cf6c0UIDlg::OnCbnSelchangeCombo1()
{
CString m_paramname;
m_combo.GetLBText(m_combo.GetCurSel(),m_paramname);
value = CT2A(m_paramname.GetBuffer());
}
//获得下拉框内容
void Cf6c0UIDlg::OnCbnSetfocusCombo1()
{
m_combo.ResetContent();//清空下拉框
m_combo.AddString(L"Logo");
m_combo.AddString(L"中心十字标");
m_combo.AddString(L"罗盘");
m_combo.AddString(L"提示文字");
m_combo.AddString(L"状态栏");
m_combo.AddString(L"字幕");
m_combo.AddString(L"矩形绘制");
m_combo.AddString(L"鼠标");
m_combo.AddString(L"罗盘EX");
m_combo.SetCurSel(-1);
}
//添加UI控件响应器
void Cf6c0UIDlg::OnBnClickedaddresponser()
{
if(value == "Logo")
{
addUILogoResponser();
}
else if(value == "中心十字标")
{
addUICrossResponser();
}
else if(value == "罗盘")
{
addUICompassResponser();
}
else if(value == "提示文字")
{
addUITipResponser();
}
else if(value == "状态栏")
{
addUIStateResponser();
}
else if(value == "字幕")
{
addUICaptionResponser();
}
else if(value == "矩形绘制")
{
AddRectangle();
}
else if(value == "鼠标")
{
AddResMouse();
}
else if(value == "罗盘EX")
{
AddResCompassEx();
}
}
//卸载UI控件响应器
void Cf6c0UIDlg::OnBnClickeddeleteresponser()
{
if(value == "Logo")
{
map->RemoveResponser("UILogoResponser");//移除响应器
}
else if(value == "中心十字标")
{
map->RemoveResponser("UICrossResponser");//移除响应器
}
else if(value == "罗盘")
{
map->RemoveResponser("UICompassResponser");//移除响应器
}
else if(value == "提示文字")
{
map->RemoveResponser("UITipsResponser");//移除响应器
}
else if(value == "状态栏")
{
map->RemoveResponser("UIStateResponser");//移除响应器
}
else if(value == "字幕")
{
map->RemoveResponser("UICaptionResponser");//移除响应器
}
else if(value == "矩形绘制")
{
map->RemoveResponser("UIRectangleResponser");//移除响应器
}
else if(value == "鼠标")
{
map->RemoveResponser("UIMouseResponser");//移除响应器
}
else if(value == "罗盘EX")
{
map->RemoveResponser("UICompassExResponser");//移除响应器
}
}
//修改Logo响应器
void Cf6c0UIDlg::OnBnClickedmodifyuilogoresponser()
{
//注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("");//创建响应器配置,参数任意名称
resp->AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
resp->AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
resLogo->UpdateResponserOptions(resp);//更新响应器配置项
}
C#调用
IResponserObject resCompass;//罗盘响应器对象
IResponserObject resLogo;//Logo响应器对象
//添加Logo响应器
private void addUILogoResponser()
{
var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
resp.AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
resLogo = map.CreateResponser("UILogoResponser", resp);//创建响应器对象,UILogoResponser代表Logo响应器
map.AddResponser(resLogo);//添加响应器对象
}
//添加中心十字标响应器
private void addUICrossResponser()
{
var resp = map.CreateResponserOptions("UICrossResponser");//创建响应器配置对象,参数任意名称
var resCross = map.CreateResponser("UICrossResponser", resp);//创建响应器对象,UICrossResponser代表中心十字标响应器
map.AddResponser(resCross);//添加响应器对象
}
//添加罗盘响应器
private void addUICompassResponser()
{
var resp = map.CreateResponserOptions("UICompassResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
resp.AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
resCompass = map.CreateResponser("UICompassResponser", resp);//创建响应器对象,UICompassResponser代表罗盘响应器
map.AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}
//添加提示文字响应器
private void addUITipResponser()
{
var resp = map.CreateResponserOptions("UITipsResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
resp.AddConfig("TextSize", "6");//提示文字大小
resp.AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
var resTips = map.CreateResponser("UITipsResponser", resp);//创建响应器对象,UITipsResponser代表文字提示响应器
map.AddResponser(resTips);//添加响应器对象
}
//添加状态栏响应器
private void addUIStateResponser()
{
var resp = map.CreateResponserOptions("UIStateResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
resp.AddConfig("TextSize", "8");//文字大小
resp.AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
resp.AddConfig("StateCurrent", "true");//当前视点信息开关
resp.AddConfig("StateMouse", "true");//当前鼠标信息开关
resp.AddConfig("StateHeight", "true");//当前高度信息开关
//resp.AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
//resp.AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
//resp.AddConfig("LonShow", " 经度: ");//经度文字 可选配置
//resp.AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
//resp.AddConfig("HeightShow", " 高程:");//高程文字 可选配置
var resState = map.CreateResponser("UIStateResponser", resp);//创建响应器对象,UIStateResponser代表状态栏响应器
map.AddResponser(resState);//添加响应器对象
}
//添加字幕响应器
private void addUICaptionResponser()
{
var resp = map.CreateResponserOptions("UICaptionResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
resp.AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
resp.AddConfig("TextSize", "10");//字体大小
resp.AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
resp.AddConfig("PlayTimes", "2");//字幕播放次数(次)
resp.AddConfig("PlayLength", "400");//字幕播放长度(像素)
resp.AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
resp.AddConfig("TextColor", "1,0,0");//文字颜色
resp.AddConfig("PlayState", "false");//播放状态
var resCaption = map.CreateResponser("UICaptionResponser", resp);//创建响应器对象,UICaptionResponser代表字幕响应器
map.AddResponser(resCaption);//添加响应器对象
}
//添加鼠标响应器
private void AddResMouse()
{
var resp = map.CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
var resMouse = map.CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
map.AddResponser(resMouse);
}
//添加罗盘响应器Ex
private void AddResCompassEx()
{
var resp = map.CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
resp.AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
resp.AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
var resCompassEx = map.CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
map.AddResponser(resCompassEx);//更新罗盘响应器配置,这里必须这么处理
}
//添加UI控件响应器
private void addResponser_Click(object sender, EventArgs e)
{
Console.WriteLine("Text:" + comboBox1.SelectedItem.ToString());
switch (comboBox1.SelectedItem.ToString())
{
case "Logo":
addUILogoResponser();
break;
case "中心十字标":
addUICrossResponser();
break;
case "罗盘":
addUICompassResponser();
break;
case "提示文字":
addUITipResponser();
break;
case "状态栏":
addUIStateResponser();
break;
case "字幕":
addUICaptionResponser();
break;
case "鼠标":
addUICaptionResponser();
break;
case "罗盘EX":
addUICaptionResponser();
break;
}
}
string UIValue;
//卸载UI控件响应器
private void deleteResponser_Click(object sender, EventArgs e)
{
Console.WriteLine("Text:" + comboBox1.SelectedItem.ToString());
switch (comboBox1.SelectedItem.ToString())
{
case "Logo":
UIValue = "UILogoResponser";
break;
case "中心十字标":
UIValue = "UICrossResponser";
break;
case "罗盘":
UIValue = "UICompassResponser";
break;
case "提示文字":
UIValue = "UITipsResponser";
break;
case "状态栏":
UIValue = "UIStateResponser";
break;
case "字幕":
UIValue = "UICaptionResponser";
break;
case "鼠标":
UIValue = "UIMouseResponser";
break;
case "罗盘EX":
UIValue = "UICompassExResponser";
break;
}
map.RemoveResponser(UIValue);//移除响应器
}
//修改响应器
private void modifyUILogoResponser_Click(object sender, EventArgs e)
{
//注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
resp.AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
resp.AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
resLogo.UpdateResponserOptions(resp);//更新响应器配置项
}