/**
* [ONEMAP.M.footer]
* @return {[object]}
*/
define([
'html!templates/footer',
'css!styles/footer'
], function (tplLayout) {
var status = {
curTimeModel: 'six', //six 六进制 ten 十进制
curZoingNum: 3 //分度带
}
var modValue = {
hms: true,
curLatlngType: 'dfm',
beforeLocationMouseMove: true,
}
function init() {
setLayout();
layoutResize();
bindEvent();
subscribe();
// getUserLocation();
};
function setLayout() {
$(tplLayout).appendTo($("#footer .cover-content"));
$('#copyright').html(onemapUrlConfig.systemCopy);
$('#footer .contact.power').html(onemapUrlConfig.powerWords);
if (onemapUrlConfig.contactNum) {
var nums = onemapUrlConfig.contactNum;
var contactDom = '';
if (nums.length == 1) {
contactDom = '' + nums[0] + '';
} else {
for (var i = 0; i < nums.length; i++) {
if (i != nums.length - 1) {
contactDom += '' + nums[i] + ',';
} else {
contactDom += '' + nums[i] + '';
}
}
}
$("#footer .contact .phoneNum").html(contactDom);
}
layoutResize();
$(window).resize(function () {
layoutResize();
});
updateViewHeight(map23DData.view.zoom);
$(".leaflet-control-scale-line").appendTo($("#footer .footer-content .scale"));
if (map23DData.display.map2D) {
$('#footer').removeClass('class3d');
} else {
$('#footer').addClass('class3d');
}
if (!ONEMAP.D.isLoad) {
$('#footer .feedback').remove();
}
}
function layoutResize() {
var curWindowWeight = $(window).width();
if (curWindowWeight < 1250) {
$("#footer").addClass('min');
} else {
$("#footer").removeClass('min');
}
}
function changeLtlngShowStyle() {
if (status.curTimeModel === 'six') {
$("#footer #pointInfoToTen").show();
$("#footer #pointInfoToSix").hide();
status.curTimeModel = 'ten';
} else {
$("#footer #pointInfoToTen").hide();
$("#footer #pointInfoToSix").show();
status.curTimeModel = 'six';
}
}
function bindEvent() {
$(".data-share-link").attr("href", onemapUrlConfig.shareUrl);
$(".kf-center").attr("href", onemapUrlConfig.devCenterUrl);
$(".olCommu").attr("href", onemapUrlConfig.olCommuUrl);
$(".hoverShow").hover(function () {
$(".phoneNum").toggle();
})
$("#pointInfoToTen .changeType").bind('click', function () {
$("#changeLatlng").toggle();
})
$("#changeLatlng .latlng_list li").bind('click', function () {
var mid = $(this).attr('mid');
if (modValue.curLatlngType != mid) {
$("#pointInfoToTen .changeType").html($(this).html());
$("#changeLatlng").toggle();
modValue.curLatlngType = mid;
if (modValue.curLatlngType == "tgoos") {
status.curZoingNum = 3;
map23DControl.curZoingNum = 3;
} else if (modValue.curLatlngType == "sgoos") {
status.curZoingNum = 6;
map23DControl.curZoingNum = 6;
}
ONEMAP.C.publisher.publish(status.curZoingNum, 'daihao');
coordinateExport();
}
})
//定位
$('#footer .iplocation').bind('click', function () {
getUserLocation();
})
};
function change23D(options) {
if (options == '2d') {
$('#footer').removeClass('class3d');
} else {
$('#footer').addClass('class3d');
}
}
function updateViewHeight(zoom) {
if (map23DData.display.map3D) {
//var distance = map23DData.view.distance;
$("#footer .viewHeight .curheight").html(zoom.toFixed(0) + '米');
$("#footer .viewHeight").show();
$("#footer .viewZoom").hide();
}
if (map23DData.display.map2D) {
$("#footer .viewZoom .curzoom").html(zoom);
$("#footer .viewHeight").hide();
$("#footer .viewZoom").show();
}
}
function updateLatlng(options) {
// if (!options.lng || !options.lat) {
// options = modValue.curLatlng;
// }
if (options && options.lng && options.lat) {
modValue.curLatlng = options;
} else {
options = modValue.curLatlng;
}
//经纬度显示
lat = options.lat;
lng = options.lng;
var obj = {
lng: lng,
lat: lat
}
coordinateExport(obj)
}
function upsz() {
// if (!modValue.beforeLocationMouseMove)
// return;
//经纬度显示
lat = map2DViewer.map.getCenter().lat.toFixed(6);
lng = map2DViewer.map.getCenter().lng.toFixed(6);
modValue.curLatlng = {
lng: lng,
lat: lat
}
var obj = {
lng: lng,
lat: lat
}
coordinateExport(obj)
}
function coordinateExport(obj) {
var latlng = null;
if (obj) {
latlng = new L.latLng(obj.lat, obj.lng)
$('#pointInfoToTen .goosXY').data("lng", obj.lng)
$('#pointInfoToTen .goosXY').data("lat", obj.lat)
} else {
latlng = new L.latLng($('#pointInfoToTen .goosXY').data("lat"), $('#pointInfoToTen .goosXY').data("lng"))
}
var zoom = map23DData.view.zoom;
if (modValue.curLatlngType == 'dfm') {
var nLatlng = L.Util.formatHMS(latlng);
} else if (modValue.curLatlngType == 'df') {
var nLatlng = L.Util.formatHM(latlng);
} else if (modValue.curLatlngType == 'd') {
if (lng > 180) {
lng = (lng % 180) - 180;
} else if (lng < -180) {
lng = 180 + (lng % 180);
}
lng = lng.toFixed(6);
lat = lat.toFixed(6);
if (lat < 0) {
nLat = 'S' + lat * -1;
} else {
nLat = 'N' + lat;
}
if (lng < 0) {
nLng = 'W' + lng * -1;
} else {
nLng = 'E' + lng;
}
var nLatlng = {
lng: nLng,
lat: nLat
};
} else if (modValue.curLatlngType == 'tgoos' || modValue.curLatlngType == 'sgoos') {
var goosLatlong = GaussUtil.fromLatLon(latlng.lat, latlng.lng, status.curZoingNum)
}
if (modValue.curLatlngType == 'tgoos' || modValue.curLatlngType == 'sgoos') {
$('#pointInfoToTen .goosXY').empty().append('带号:' + goosLatlong.zoneNum + ' X:' + goosLatlong.x.toFixed(4) + ' Y:' + goosLatlong.y.toFixed(4));
} else {
$('#pointInfoToTen .goosXY').empty().append('经度:' + nLatlng.lng + ' 纬度:' + nLatlng.lat);
}
}
function bian(e) {
if (e == "1") {
ONEMAP.C.publisher.unSubscribe(updateLatlng, 'mousemove23D');
ONEMAP.C.publisher.subscribe(upsz, 'map2DMoveIng');
} else {
ONEMAP.C.publisher.unSubscribe(upsz, 'map2DMoveIng');
ONEMAP.C.publisher.subscribe(updateLatlng, 'mousemove23D');
}
}
function removeMouseMove() {
ONEMAP.C.publisher.unSubscribe(updateLatlng, 'mousemove23D');
ONEMAP.C.publisher.unSubscribe(upsz, 'map2DMoveIng');
}
function coordinateChage(obj) {
coordinateExport(obj);
}
//三维回调
function updateLatlng3D(msg, options) {
var position = map3DViewer.screenToLatLng(options.x, options.y)
updateLatlng({
lng: position.lng,
lat: position.lat
});
}
//三维回调
function updataDEMHeight3D(msg, options) {
// var position = map3DViewer.screenToLatLng(options.x, options.y)
// updateLatlng({
// lng: position.lng,
// lat: position.lat
// });
//经纬度显示
var lat = options.infos.lat;
//var nlat = map23DControl.formatDegree(lat);
var lng = options.infos.lng;
//var nlng = map23DControl.formatDegree(lng);
var alt = options.infos.alt;
var zoom = map3DViewer.getZoomFrom3DZoom(alt);
updataDEMHeight(lat, lng, zoom);
$("#footer .viewHeight .curheight").html(alt.toFixed(0) + '米');
}
//获取当前位置
// 52定位
function getUserLocation_() {
$.ajax({
url: onemapUrlConfig.getUserLocation,
type: 'get',
dataType: 'json',
})
.done(function (data) {
map23DControl.setView({
center: {
lat: data.latitude,
lng: data.longitude
},
zoom: 12
})
})
.fail(function () {
console.log("error");
})
.always(function () {
console.log("complete");
});
}
// qq定位
function getUserLocation() {
var geolocation = new qq.maps.Geolocation("RUZBZ-7KZCU-CUMVO-4F62L-BOSHJ-EHFVC", "yiqing");
var options = {
timeout: 8000
};
function showPosition(position) {
position = qqmapTowgs84(position.lng, position.lat)
ONEMAP.D.globalSettingData.baseMap2D.center.lat = position.lat
ONEMAP.D.globalSettingData.baseMap2D.center.lng = position.lng
setTimeout(function () {
map23DControl.setView({
center: {
lat: ONEMAP.D.globalSettingData.baseMap2D.center.lat,
lng: ONEMAP.D.globalSettingData.baseMap2D.center.lng
},
zoom: 12
})
}, 1000);
};
function showErr() {
$.ajax({
type: "get",
dataType: 'json',
url: onemapUrlConfig.getQQLocationUrl + '/ws/location/v1/ip',
data: {
key: 'RUZBZ-7KZCU-CUMVO-4F62L-BOSHJ-EHFVC'
},
success: function (data) {
var location = data.result.location
position = qqmapTowgs84(location.lng, location.lat)
ONEMAP.D.globalSettingData.baseMap2D.center.lat = position.lat
ONEMAP.D.globalSettingData.baseMap2D.center.lng = position.lng
setTimeout(function () {
map23DControl.setView({
center: {
lat: ONEMAP.D.globalSettingData.baseMap2D.center.lat,
lng: ONEMAP.D.globalSettingData.baseMap2D.center.lng
},
zoom: 12
})
}, 1000);
}
})
};
//获取位置信息
geolocation.getLocation(showPosition, showErr, options);
}
/**
* 注册订阅
* @type {Function}
* 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
* 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
*/
function subscribe() {
ONEMAP.C.publisher.subscribe(change23D, 'change23D');
ONEMAP.C.publisher.subscribe(updateViewHeight, 'mapChange23D');
ONEMAP.C.publisher.subscribe(updateLatlng, 'mousemove23D');
ONEMAP.C.publisher.subscribe(bian, 'jingzhi');
ONEMAP.C.publisher.subscribe(coordinateChage, 'coordinateChage');
//3D
PubSub.subscribe('map3D.mouseMove', updateLatlng3D);
}
return ONEMAP.M.footer = {
init: init,
removeMouseMove: removeMouseMove,
coordinateChage: coordinateChage
};
})