using Yw.Model.Map;
|
|
namespace Yw.WinFrmUI
|
{
|
public partial class MapSetMarkerContainer : UserControl, IMapSetMarkerContainer
|
{
|
public MapSetMarkerContainer()
|
{
|
InitializeComponent();
|
}
|
|
public event Action LoadCompletedEvent;
|
public event Action LoadFailedEvent;
|
public event Action<HandingError> HandingErrorEvent;
|
public event Action<Marker> SetMarkerEvent;
|
public event Action CancelDrawMarkerEvent;
|
public event Action CancelEditMarkerEvent;
|
|
public MapSetMarkerCallBackObj CallBackObj
|
{
|
get
|
{
|
if (_callBackObj == null)
|
{
|
_callBackObj = new MapSetMarkerCallBackObj();
|
}
|
return _callBackObj;
|
}
|
}
|
private MapSetMarkerCallBackObj _callBackObj;
|
|
public bool IsInitialized
|
{
|
get
|
{
|
return _isInitialized;
|
}
|
}
|
private bool _isInitialized;
|
|
/// <summary>
|
/// 初始化容器
|
/// </summary>
|
public async Task InitialContainer()
|
{
|
var callBackObj = this.CallBackObj;
|
callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent;
|
callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent;
|
callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent;
|
callBackObj.SetMarkerEvent += CallBackObj_SetMarkerEvent;
|
callBackObj.CancelDrawMarkerEvent += CallBackObj_CancelDrawMarkerEvent;
|
callBackObj.CancelEditMarkerEvent += CallBackObj_CancelEditMarkerEvent;
|
await this.webViewControl1.InitialWebBrower(MapUrlHelper.SetMarkerUrl, callBackObj);
|
}
|
|
//加载完成
|
private void CallBackObj_LoadCompletedEvent()
|
{
|
_isInitialized = true;
|
this.LoadCompletedEvent?.Invoke();
|
}
|
|
//加载失败
|
private void CallBackObj_LoadFailedEvent()
|
{
|
this.LoadFailedEvent?.Invoke();
|
}
|
|
//处理错误
|
private void CallBackObj_HandingErrorEvent(HandingError obj)
|
{
|
this.HandingErrorEvent?.Invoke(obj);
|
}
|
|
//设置标记
|
private void CallBackObj_SetMarkerEvent(Yw.Model.Map.Marker obj)
|
{
|
this.SetMarkerEvent?.Invoke(obj);
|
}
|
|
//取消绘制标记
|
private void CallBackObj_CancelDrawMarkerEvent()
|
{
|
this.CancelDrawMarkerEvent?.Invoke();
|
}
|
|
//取消编辑标记
|
private void CallBackObj_CancelEditMarkerEvent()
|
{
|
this.CancelEditMarkerEvent?.Invoke();
|
}
|
|
/// <summary>
|
/// 加载标记
|
/// </summary>
|
public async Task<bool> LoadMarker(Marker marker)
|
{
|
if (!this.IsInitialized)
|
{
|
return false;
|
}
|
return await this.webViewControl1.EvaluateScriptAsync<bool>("loadMarker", marker);
|
}
|
|
/// <summary>
|
/// 开始绘制标记
|
/// </summary>
|
public async Task<bool> StartDrawMarker()
|
{
|
if (!this.IsInitialized)
|
{
|
return false;
|
}
|
return await this.webViewControl1.EvaluateScriptAsync<bool>("startDrawMarker()");
|
}
|
|
/// <summary>
|
/// 开始编辑标记
|
/// </summary>
|
public async Task<bool> StartEditMarker()
|
{
|
if (!this.IsInitialized)
|
{
|
return false;
|
}
|
return await this.webViewControl1.EvaluateScriptAsync<bool>("startEditMarker()");
|
}
|
|
/// <summary>
|
/// 设置信息面板的可见性
|
/// </summary>
|
public async Task SetInfoPanelVisibility()
|
{
|
if (!this.IsInitialized)
|
{
|
return;
|
}
|
await this.webViewControl1.EvaluateScriptAsync("setInfoPanelVisibility()");
|
}
|
|
|
|
|
}
|
}
|