123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- /**
- * [ONEMAP.M.projectController]
- * @return {[object]}
- */
- define(function (tplLayout) {
- /**
- * 初始化并订阅事件
- * @return {[type]} [description]
- */
- function init() {
- //if (!status.initialized) {
- subscribe();
- bindEvent();
- status.initialized = true;
- //}
- }
- var eyelook = {
- status: true
- }
- function bindEvent() {
- // 清空
- $("#layerControlMenu .clearLayer").unbind('click').bind('click', function () {
- ONEMAP.M.myLayerActions.clearLayer();
- ONEMAP.C.publisher.publish({
- type: 'allRemove'
- }, 'legend:remove');
- })
- // 从我的图层中删除
- $("#layerControlMenu .myLayers .close").off('click').on('click', function () {
- var guid = $(this).parent().parent().attr("layer");
- ONEMAP.C.publisher.publish({
- action: 'remove',
- guid: guid
- }, guid);
- // 从上部移除我的图层中的对应节点
- var getClass = $(this).next().attr("class");
- $(this).parent().parent().remove();
- var legendUrl = $(this).parent().find('.legend').attr('curl');
- // console.log(legendUrl);
- ONEMAP.C.publisher.publish({
- type: legendUrl
- }, 'legend:remove');
- // // 从上部移除我的图层中的对应节点
- // var getClass = $(this).next().attr("class");
- if (getClass) {
- var rmvClass = "." + getClass;
- // $(rmvClass).removeAttr("checked"); // 移除选中状态
- $(rmvClass).next().removeClass('menu-select').addClass("menu-select-no"); // (新)
- $(rmvClass).removeClass(getClass); // 移除上部对应class
- }
- ONEMAP.M.layerControlMenu.checkLayerNull();
- ONEMAP.M.myLayerActions.changeFloor();
- // 移除zoom范围
- var liName = $(this).parent().find(".data-name").text();
- ONEMAP.M.myLayers.zoomActions('remove', '', '', '', '', '', liName);
- })
- // 我的图层中复选框操作
- $("#layerControlMenu .myLayers :checkbox").off("change").on("change", function () {
- var guid = $(this).parent().parent().attr("layer");
- var eye = $(this).parent().parent().find(".eye");
- if ($(this).is(":checked")) {
- ONEMAP.C.publisher.publish({
- action: 'opacity',
- options: {
- opacity: 1
- },
- guid: guid
- }, guid);
- $(this).parents().filter("li").attr("eyelook", 0);
- if (!eye.hasClass("checkTrue")) {
- eye.addClass("checkTrue");
- $(this).parent().parent().css({
- "background": "url(../images/layout/zhenyan.png) 45px 16px / 21px no-repeat",
- "background-size": "20px"
- });
- }
- } else {
- ONEMAP.C.publisher.publish({
- action: 'opacity',
- options: {
- opacity: 0
- },
- guid: guid
- }, guid);
- $(this).parent().next().find(".chang").css("width", 0);
- $(this).parent().next().find(".yuan").css("left", 0);
- $(this).parents().filter("li").attr("eyelook", 1);
- // eyelook.status = false;
- if (eye.hasClass("checkTrue")) {
- eye.removeClass("checkTrue");
- $(this).parent().parent().css({
- "background": "url(../images/layout/biyan.png) 45px 16px / 21px no-repeat",
- "background-size": "20px"
- });
- }
- }
- })
- // 我的图层操作界面显隐
- $("#layerControlMenu .gear").off('click').on('click', function () {
- if ($(this).parent().next().hasClass('active')) {
- $(this).parent().next().removeClass('active');
- } else {
- $(this).parent().next().addClass('active');
- }
- })
- // 详情和收藏
- $("#layerControlMenu .myLayers .layer-detail").off('click').on('click', function () {
- var layerObj = JSON.parse($(this).parent().prev().find(".data-save").html());
- if (layerObj) {
- getShowInfo(layerObj);
- }
- })
- $("#layerControlMenu .myLayers .layer-cale").off('click').on('click', function () {
- var layerObj = JSON.parse($(this).parent().prev().find(".data-save").html());
- if (layerObj) {
- require(['modDir/user/userThematic'], function (userThematic) {
- userThematic.addThematic(layerObj);
- });
- }
- })
- // 透明度滑条
- var mnAct = $('#layerControlMenu .myLayers .mn-content li .mn-act');
- var yuan = $('#layerControlMenu .myLayers .mn-content li .yuan');
- yuan.on('mousedown', function (event) {
- var e = event;
- if ($(this).parents().filter("li").attr("eyelook") == 1) {
- e.preventDefault();
- } else {
- // 锁定当前索引
- var idx = $(this).parent().parent().parent().index();
- yuan = $('#layerControlMenu .myLayers .mn-content li .yuan').eq(idx).get(0);
- var op = $('#layerControlMenu .myLayers .mn-content li .op').eq(idx).get(0);
- var chang = $('#layerControlMenu .myLayers .mn-content li .chang').eq(idx).get(0);
- var yuanleft = 0;
- var event = event || window.event;
- var leftVal = event.clientX - this.offsetLeft;
- var that = this;
- var zid = $(this).parent().parent().parent().attr("zid");
- var curLatyerId = $(this).parent().parent().parent().attr('layer');
- if (mnAct.attr("setOp") == "yes") {
- // 拖动
- document.onmousemove = function (event) {
- var event = event || window.event;
- yuanleft = event.clientX - leftVal;
- if (yuanleft < 0)
- yuanleft = 0;
- else if (yuanleft > op.offsetWidth - yuan.offsetWidth)
- yuanleft = op.offsetWidth - yuan.offsetWidth;
- chang.style.width = yuanleft + 'px';
- yuan.style.left = yuanleft + "px";
- var opt = 1 - parseInt(yuanleft / (op.offsetWidth - yuan.offsetWidth) * 100) / 100;
- // console.log(opt);
- // 设置当前图层透明度
- ONEMAP.C.publisher.publish({
- action: 'opacity',
- options: {
- opacity: opt
- },
- guid: curLatyerId
- }, curLatyerId);
- //防止选择内容--当拖动鼠标过快时候,弹起鼠标,bar也会移动,修复bug
- window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
- }
- }
- }
- })
- document.onmouseup = function () {
- document.onmousemove = null; //弹起鼠标不做任何操作
- }
- // 当前图层上移下移
- $("#layerControlMenu .down").off('click').on('click', function () {
- var nd = $(this).parent().parent().parent();
- var nxt = nd.next().html();
- var length = $("#mapHolder #map2DWrap .leaflet-layer ").length - 1;
- var idx = length - nd.index(); // 当前图层索引值
- if (typeof (nxt) != 'undefined' && nxt != "暂无图层数据") {
- nd.insertAfter(nd.next());
- var curLatyerId = $(this).parent().parent().parent().attr('layer');
- ONEMAP.C.publisher.publish({
- action: 'down'
- }, curLatyerId);
- // ONEMAP.M.myLayerActions.changeFloor();
- } else {
- ONEMAP.C.publisher.publish({
- type: 'warning',
- message: '已移到最底部'
- }, 'noteBar::add');
- }
- })
- $("#layerControlMenu .up").off('click').on('click', function () {
- var nd = $(this).parent().parent().parent();
- var prv = nd.prev().html();
- if (typeof (prv) != 'undefined') {
- nd.insertBefore(nd.prev());
- var curLatyerId = $(this).parent().parent().parent().attr('layer');
- ONEMAP.C.publisher.publish({
- action: 'up'
- }, curLatyerId);
- // ONEMAP.M.myLayerActions.changeFloor();
- } else {
- ONEMAP.C.publisher.publish({
- type: 'warning',
- message: '已移到最顶部'
- }, 'noteBar::add');
- }
- })
- //显示图例
- $("#layerControlMenu .legend").unbind('click').bind('click', function () {
- var pictureUrl = $(this).attr('curl');
- require(['modDir/menu/legend'], function (legend) {
- legend.init({
- pictureUrl: pictureUrl
- });
- });
- })
- //模型控制
- $("#layerControlMenu .stereoscopic_set").unbind('click').bind('click', function () {
- var guid = $(this).parent().parent().attr("layer");
- ONEMAP.C.publisher.publish({
- action: 'set',
- guid: guid
- }, guid);
- })
- }
- /**
- * 显示专题图详情
- */
- function getShowInfo(data) {
- // console.log(data);
- var guid = data.guid;
- var ajaxUrl = onemapUrlConfig.thematicDataServerUrl + '/production/metadata?production_id=' + guid;
- ONEMAP.V.loading.load();
- $.ajax({
- type: "get",
- dataType: 'jsonp',
- url: ajaxUrl,
- success: function (data) {
- ONEMAP.V.loading.loaded();
- //添加专题图信息到地图容器中
- addItemToContent(data.metadata);
- //console.log(data.metadata);
- },
- error: function (data) {
- ONEMAP.V.loading.loaded();
- ONEMAP.C.publisher.publish({
- type: 'error',
- message: '获取地图数据失败!'
- }, 'noteBar::add');
- }
- });
- };
- function addItemToContent(data) {
- $('#atlasInfoDetail').show();
- var zIndex = ONEMAP.M.sideBar.getZIndex();
- $('#atlasInfoDetail').css({
- zIndex: zIndex
- });
- $('#atlasInfoDetail .cover-content').empty();
- $('<div class="close"></div>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<h3>' + data.map_name + '</h3>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>作者: ' + data.author + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>创建时间: ' + data.created_time + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>发布者: ' + data.publisher + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>发布时间: ' + data.publication_date + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>地图来源: ' + data.original_atlas + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>最小缩放等级: ' + data.min_zoom_level + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>最大缩放等级: ' + data.max_zoom_level + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- //$('<p>瓦片格式: '+data.image_format+'</p>').appendTo($('#atlasInfoDetail .content'));
- //$('<p>瓦片质量: '+data.image_quality+'</p>').appendTo($('#atlasInfoDetail .content'));
- $('<p>地图宽度: ' + data.map_image_width + '像素</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $('<p>地图高度: ' + data.map_image_height + '像素</p>').appendTo($('#atlasInfoDetail .cover-content'));
- if (data.coordinate_system == 0) {
- data.coordinate_system = '无坐标图形'
- }
- $('<p>坐标系: ' + data.coordinate_system + '</p>').appendTo($('#atlasInfoDetail .cover-content'));
- $(".close").click(function () {
- $("#atlasInfoDetail").hide();
- })
- }
- /**
- * 设置界面
- */
- function setLayout() {
- }
- function layoutResize() {
- }
- /**
- * 注册订阅
- * @type {Function}
- * 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
- * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
- */
- function subscribe() {
- //ONEMAP.C.publisher.subscribe(layoutResize, 'menuListClick');
- // ONEMAP.C.publisher.subscribe(remove, 'cleanMap');
- }
- /**
- * 取消订阅
- * @type {Function}
- * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
- */
- function unSubscribe() {
- }
- // 更改层级
- function changeFloor() {
- // console.log("2333");
- var layer = $("#mapHolder #map2DWrap .leaflet-layer ");
- var layerLength = layer.length;
- var li = $("#layerControlMenu .myLayers .mn-content li");
- var liLength = li.length;
- for (var i = 0; i < liLength; i++) {
- if (li.eq(i).attr("cg") == "true") {
- // console.log("congratulation");
- var DOMID = "zid" + li.eq(i).attr("layer");
- // console.log(DOMID);
- $("#mapHolder ." + DOMID).css("z-index", layerLength);
- layerLength--;
- }
- }
- }
- // 设置透明度
- function setOpacity(zid, opt) {
- map23DControl.tileLayer({
- action: 'update',
- guid: zid,
- layer: {
- opacity: opt
- }
- })
- }
- function clearLayer() {
- $("#layerControlMenu").removeClass("bl");
- var layerLis = $("#layerControlMenu .myLayers .mn-content li");
- for (var i = 0; i < layerLis.length; i++) {
- var guid = $(layerLis[i]).attr("layer");
- ONEMAP.C.publisher.publish({
- action: 'remove',
- guid: guid
- }, guid);
- $(layerLis[i]).remove();
- // 从上部移除我的图层中的对应节点
- if (guid) {
- var rmvClass = "." + guid;
- // $(rmvClass).removeAttr("checked"); // 移除选中状态(旧)
- $(rmvClass).next().removeClass('menu-select').addClass("menu-select-no"); // (新)
- $(rmvClass).removeClass(guid); // 移除上部对应class
- }
- // 清空搜索結果列表
- $("#placePanel .thematic-content .thematic-search-list li").attr("load", 0);
- //
- $('#thematicResultsList li.select').removeClass('select');
- }
- ONEMAP.M.layerControlMenu.checkLayerNull();
- map2DViewer.map.setZoomScope(1, 19);
- ONEMAP.C.layerLength = 0;
- ONEMAP.C.zoomArr = [];
- ONEMAP.C.zoomArr2w = [];
- }
- function checkLayerNull() {
- // 我的图层暂无数据时
- if (typeof ($("#layerControlMenu .myLayers .mn-content li").eq(0).html()) == "undefined" || $("#layerControlMenu .myLayers .mn-content").text() == "") {
- $('#thematicResultsList li.select').removeClass('select');
- // 解放缩放等级
- map2DViewer.map.setZoomScope(1, 19);
- $("#layerControlMenu").removeClass("bl");
- }
- }
- function checkChongMing(name) {
- var layerlistDe;
- // console.log(name);
- if (typeof ($("#layerControlMenu .myLayers .mn-content li").eq(0).html()) == "undefined" || $("#layerControlMenu .myLayers .mn-content").text() == "") {
- return true;
- } else {
- layerlistDe = $("#layerControlMenu .myLayers .mn-content li");
- for (var i = 0; i < layerlistDe.length; i++) {
- if (name == layerlistDe.eq(i).find(".data-name").text()) {
- // console.log("false")
- return false;
- // console.log(layerlistDe.eq(i).find(".data-name").text());
- }
- }
- return true;
- }
- }
- return ONEMAP.M.myLayerActions = {
- init: init,
- checkLayerNull: checkLayerNull,
- clearLayer: clearLayer,
- changeFloor: changeFloor,
- checkChongMing: checkChongMing
- }
- });
|