/**
* [ONEMAP.M.mod]
* @return {[object]}
*/
define(['html!templates/tools/DXAnalysis',
'css!styles/tools/DXAnalysis',
],
function(tplLayout) {
/**
* 模块数据 用于数据存储和外部调用
* @type {Object}
* 数据存放
*/
var modValue = {
};
/**
* 模块界面样式 例如:宽,高
* @type {Object}
*/
var styles = {};
/**
* 模块状态,用于存储模块的状态 例如:收起,关闭
* @type {Object}
*/
var status = {
initialized:false,
initsubscribe:false
};
/**
* 查询参数
* @type {Object}
*/
var options = {};
/**
* 初始化并订阅事件
* @return {[type]} [description]
*/
function init() {
if(!status.initialized){
$('body').append(tplLayout);
$('#DXAnalysisContent .popup-ct').dragmove($('#DXAnalysisContent'));
var PXdom = document.getElementById("PXContent");
modValue.PXchart = echarts.init(PXdom);
var PDdom = document.getElementById("PDContent");
modValue.PDchart = echarts.init(PDdom);
status.initialized = true;
//subscribe();
}
if(!status.initsubscribe){
status.initsubscribe = true;
subscribe();
}
ONEMAP.C.publisher.publish({
modName: 'toolDX'
}, 'tools:active');
}
/**
* 设置界面
*/
function setLayout() {
}
/**
* 界面事件绑定
* @return {[type]} [description]
*/
function bindEvent() {
}
/**
* 界面重置
* @return {[type]} [description]
*/
function layoutResize() {
}
/**
* 注册订阅
* @type {Function}
* 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
* 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
*/
function subscribe() {
ONEMAP.C.publisher.subscribe(remove, 'tools:active');
}
/**
* 取消订阅
* @type {Function}
* 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
*/
function unSubscribe() {
ONEMAP.C.publisher.unSubscribe(remove, 'tools:active');
}
function clearMeasuring() {
if (modValue.reGroup) {
map23DControl.group({
action: 'remove',
guid: modValue.reGroup
})
modValue.reGroup = null;
}
if(modValue.imageOverlayGuid){
map23DControl.imageOverlay({
action:'remove',
guid:modValue.imageOverlayGuid
})
modValue.imageOverlayGuid = null;
}
}
function addMapEvent() {
if (!modValue.drawRectangle) {
modValue.drawRectangle = new L.Draw.Rectangle(map2DViewer.map);
}
if (modValue.reGroup) {
map23DControl.group({
action: 'cleanAll',
guid: modValue.reGroup
})
} else {
modValue.reGroup = map23DControl.group({
action: 'add',
})
}
modValue.drawRectangle.enable();
map2DViewer.map.on('draw:created', drawCreated);
}
function drawCreated(e) {
modValue.rectangle = e.layer;
modValue.rectangle.options.fillOpacity = 0;
map2DViewer.groups[modValue.reGroup].addLayer(modValue.rectangle);
modValue.rectangle.editing.enable();
map2DViewer.map.on('edit', updateDXContent);
updateDXContent();
}
function updateDXContent() {
var latlngs = modValue.rectangle.getLatLngs()[0];
var bbox = latlngs[1].lng+","+latlngs[1].lat+","+latlngs[3].lng+","+latlngs[3].lat;
$("#DXAnalysisContent").show();
$(".fenxialert").remove();
//获取区域坡向数据
$.ajax({
type: "get",
dataType: 'json',
data: {
bbox:bbox
},
url: onemapUrlConfig.elevationDataUrl + '/v2.0/geoprocessing/aspect/bbox',
beforeSend: ONEMAP.V.loading.load(),
success: function (data) {
if (data.status == 'ok' && data.result) {
//echarts渲染
var PXIndex = [];
var PXData = [];
for(var i=0;i
所选区域暂无数据
").appendTo($("#PXContent")) } }, completer: ONEMAP.V.loading.loaded() }); //获取区域坡度数据 $.ajax({ type: "get", dataType: 'json', data: { bbox:bbox }, url: onemapUrlConfig.elevationDataUrl + '/v2.0/geoprocessing/slope/bbox', beforeSend: ONEMAP.V.loading.load(), success: function (data) { if (data.status == 'ok') { //echarts渲染 $("#DXAnalysisContent .min_num").html(data.result.min); $("#DXAnalysisContent .max_num").html(data.result.max); var PXIndex = []; var PXData = []; for(var i=0;i所选区域暂无数据
").appendTo($("#PDContent")) } }, completer: ONEMAP.V.loading.loaded() }); //获取坡度数据图片并添加到地图上 var curzoom = map2DViewer.map.getZoom()+1; var imageUrl = onemapUrlConfig.elevationDataUrl + '/v2.0/geoprocessing/slope/bbox?bbox='+bbox+'&as_image=1&zoom='+curzoom; if(modValue.imageOverlayGuid){ map23DControl.imageOverlay({ action:'update', from:'23D', guid:modValue.imageOverlayGuid, type:'imageOverlay', layers:{ opacity:1,//2D透明度 layerBounds: [[latlngs[1].lng, latlngs[1].lat], [latlngs[3].lng, latlngs[3].lat]],//左上角 右下角 imageUrl2D:imageUrl,//2D图片地址 imageUrl3D:imageUrl//3D图片服务地址 } }) }else{ modValue.imageOverlayGuid = map23DControl.imageOverlay({ action:'add', from:'23D', type:'imageOverlay', layers:{ opacity:1,//2D透明度 layerBounds: [[latlngs[1].lng, latlngs[1].lat], [latlngs[3].lng, latlngs[3].lat]],//左上角 右下角 imageUrl2D:imageUrl,//2D图片地址 imageUrl3D:imageUrl//3D图片服务地址 } }) } } function removeMapEvent() { clearMeasuring(); map2DViewer.map.off('draw:created', drawCreated); map2DViewer.map.off('edit', updateDXContent); $("#DXAnalysisContent").remove(); status.initialized = false; //取消订阅 //unSubscribe(); } /** * 模块移除 * @return {[type]} [description] */ function remove(options) { if (options.modName == 'toolDX') { if ($('#toolsBar .tools-dixing').hasClass('cur')) { $('#toolsBar .tools-dixing').removeClass('cur'); removeMapEvent(); } else { $('#toolsBar .tools-dixing').addClass('cur'); addMapEvent(); } } else { $('#toolsBar .tools-dixing').removeClass('cur'); removeMapEvent(); } } return ONEMAP.M.DXAnalysis = { init: init, remove: remove } });