arcgis測量面積長度
阿新 • • 發佈:2019-02-16
//放大
function zoomBig() {
map.setZoom(map.getZoom()+1);
};
// 縮小
function zoomSmall() {
map.setZoom(map.getZoom()-1);
};
// 全圖
function zoomTotal() {
restMapToolBarImg();
$(".d2_li").attr("src", "./images/2d3d_ed.png");
map.setExtent(initialExtent);
};
var toolbar_measure=null;
var measuregeometry;
var geometryService;
function initToolbar() {
toolbar_measure = new esri.toolbars.Draw(map);
//新增toolbar畫圖完成後事件監聽呼叫 doMeasure
dojo.connect(toolbar_measure, "onDrawEnd", doMeasure);
//例項化GeometryService
var serviceurl=SysConfigInfo.getLayerURL("geometryservice");
geometryService = new esri.tasks.GeometryService(serviceurl);
}
var lengthClick=true;
// 測距
function zoomLength() {
//restMapToolBarImg();
areaClick=true;
if(lengthClick){
canelMarker();
$(".rang_li").attr("src", "./images/rang_ed.png");
if(toolbar_measure==null)initToolbar();
map.graphics.clear();
toolbar_measure.activate(esri.toolbars.Draw.POLYLINE);
canMouseSearch=false;
lengthClick=false;
}else{
lengthClick=true;
restMapToolBarImg();
toolbar_measure.deactivate();
}
};
var areaClick=true;
// 測面積
function zoomSquare() {
lengthClick=true;
if(areaClick){
//restMapToolBarImg();
canelMarker();
$(".area_li").attr("src", "./images/area_ed.png");
if(toolbar_measure==null)initToolbar();
map.graphics.clear();
toolbar_measure.activate(esri.toolbars.Draw.POLYGON);
canMouseSearch=false;
areaClick=false;
}else{
areaClick=true;
restMapToolBarImg();
toolbar_measure.deactivate();
}
};
//量算
function doMeasure(geometry) {
measuregeometry = geometry;
toolbar_measure.deactivate();
var symbol="";
switch (geometry.type) {
case "polyline":
symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,
new dojo.Color([0, 0, 0]), 2);
break;
case "polygon":
symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE,
new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT,
new dojo.Color([255, 0, 0]), 2),
new dojo.Color([255, 255, 0, 0.25]));
break;
}
//設定樣式
var graphic = new esri.Graphic(geometry,symbol);
//清除上一次的畫圖內容
map.graphics.add(graphic);
//進行投影轉換,完成後呼叫projectComplete
MeasureGeometry(geometry);
}
//投影轉換完成後呼叫方法
function MeasureGeometry(geometry) {
//如果為線型別就進行lengths距離測算
if (geometry.type == "polyline") {
var lengthParams = new esri.tasks.LengthsParameters();
lengthParams.polylines = [geometry];
lengthParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
lengthParams.geodesic = true;
lengthParams.polylines[0].spatialReference = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.lengths(lengthParams);
dojo.connect(geometryService, "onLengthsComplete", outputDistance);
}
//如果為面型別需要先進行simplify操作在進行面積測算
else if (geometry.type == "polygon") {
var areasAndLengthParams = new esri.tasks.AreasAndLengthsParameters();
areasAndLengthParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
areasAndLengthParams.areaUnit = esri.tasks.GeometryService.UNIT_SQUARE_METERS;
this.outSR = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.project([geometry], this.outSR, function (geometry) {
geometryService.simplify(geometry, function (simplifiedGeometries) {
areasAndLengthParams.polygons = simplifiedGeometries;
areasAndLengthParams.polygons[0].spatialReference = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.areasAndLengths(areasAndLengthParams);
});
});
dojo.connect(geometryService, "onAreasAndLengthsComplete", outputAreaAndLength);
}
}
//顯示測量距離
function outputDistance(result) {
var CurX = measuregeometry.paths[0][measuregeometry.paths[0].length - 1][0];
var CurY = measuregeometry.paths[0][measuregeometry.paths[0].length - 1][1];
var CurPos = new esri.geometry.Point(CurX, CurY, map.spatialReference);
map.infoWindow.setTitle("距離測量");
map.infoWindow.setContent(" 測 量 長 度 : <strong>" + parseInt(String(result.lengths[0])) + "米</strong>");
map.infoWindow.show(CurPos);
}
//顯示測量面積
function outputAreaAndLength(result) {
var CurX = (measuregeometry.getExtent().xmax + measuregeometry.getExtent().xmin) / 2;
var CurY = (measuregeometry.getExtent().ymax + measuregeometry.getExtent().ymin) / 2;
var CurPos = new esri.geometry.Point(CurX, CurY, map.spatialReference);
map.infoWindow.setTitle("面積測量");
map.infoWindow.setContent(" 面積:" + parseInt(String(result.areas[0])) + "平方米(" + parsefloat(String(0.0015*result.areas[0])) + "畝) <br>\
周長:" + parseInt(String(result.lengths[0])) + "米");
map.infoWindow.show(CurPos);
}
//地圖列印
function printMap(){
//restMapToolBarImg();
canelMarker();
if(toolbar_measure!==null){
toolbar_measure.deactivate();
}
areaClick=true;
lengthClick=true;
$(".print_li").attr("src", "./images/print_ed.png");
require(["esri/tasks/PrintTemplate",
"esri/tasks/PrintTask",
"esri/tasks/PrintParameters"], function (PrintTemplate, PrintTask, PrintParameters) {
//建立地圖列印物件
debugger
var printUrl = SysConfigInfo.getLayerURL("PrintService");
var printMap = new PrintTask(printUrl);
//建立地圖列印模版
var template = new PrintTemplate();
//建立地圖的列印引數,引數裡面包括:模版和地圖
var params = new PrintParameters();
//輸出圖片的空間參考
printMap.outSpatialReference = map.SpatialReference;
//列印圖片的各種引數
template.exportOptions = {
width: 1000,
height: 1000,
dpi: 96
};
var tText = "地圖列印";
var aText = "map";
var tempString = "map";
//列印輸出的格式
template.format = "PDF";
//輸出地圖的佈局
template.layout = "A4 Landscape";
// template.showLabels="true";
//設定列印地圖排版資訊
template.layoutOptions = {
"hasCustomTextElements": true,
"authorText": aText,
"copyrightText": tempString,
"legendLayers": [],
"titleText": tText,
"scalebarUnit": "Kilometers",
"customTextElements": [{ "Text": "123456" },
{ "SubTitle": "Te123456" }
]
};
//設定引數地圖
params.map = map;
//設定引數模版
params.template = template;
//執行結果
printMap.execute(params, function (result) {
//網頁開啟生成的地圖
if (result != null) {
// debugger;
url = result.url;
printevent(url);
}
});
});
}
function printevent(url) {
// 開啟頁面,此處最好使用提示頁面
var newWin = window.open("rest/page/index");
var ajax = $.ajax({
});
// addWaterMarker("中科天啟",url);
ajax.done(function () {
// 重定向到目標頁面
newWin.location.href = url;
});
}
/**
* 書籤方法
*/
var point;
function bookMark() {
restMapToolBarImg();
if(toolbar_measure!==null){
toolbar_measure.deactivate();
}
areaClick=true;
lengthClick=true;
// 顯示書籤的提示資訊
//bookMarkTips();
if(canMark){
mark = true;
canMark=false;
$(".bookmark_li").attr("src", "./images/bookmark_ed.png");
}else{
mark = false;
canMark=true;
}
}
/**
* 書籤提示資訊---文字跟隨圖示移動
*/
function bookMarkTips() {
// $("#map_div").prepend("#bookmarkTxt");
$("#bookmarkTxt").show();
var container = document.getElementById("map_div");
var p = container.getElementsByTagName("span");
document.onmousemove = function () {
p[0].style.left = event.clientX + 20 + "px";
p[0].style.top = event.clientY + 6 + "px";
for (var i = 1; i < p.length; i++) {
p[i].style.left = p[i - 1].offsetLeft + "px";
p[i].style.top = p[i - 1].offsetTop + "px";
}
}
}
function addMarker(xx, yy, screenpoint) {
if (mark) {
//設定標註的經緯度
var pt = new esri.geometry.Point(xx, yy, map.spatialReference);
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
var graphic = new esri.Graphic(pt, symbol1);
markgraphicLayer.add(graphic);
//$("#bookmarkTxt").hide();
openWindow(screenpoint);
point = pt;
}
}
/**
* 開啟資訊視窗
*/
function openWindow(screenpoint) {
var oDiv = document.createElement('div');
oDiv.setAttribute("id", "oDiv");
oDiv.style.left = screenpoint.x + 'px'; // 指定建立的DIV在文件中距離左側的位置
oDiv.style.top = screenpoint.y + 'px'; // 指定建立的DIV在文件中距離頂部的位置
var index_content = '<label>標記點採集</label>' +
'<span>描述:</span><textarea id="bz" style="margin-left:46px;margin-bottom:9px;"></textarea>' +
'<div class="btnGroup_div" style="float:right;margin-right:10px;"><button class="canelBtn btn btn-sm btn-success" onclick="canelMarker()" style="margin-right: 6px;">取消</button>' +
'<button class="saveBtn btn btn-sm btn-info" onclick="saveMarker()">儲存</button></div>';
// $(index_content).appendTo("#oDiv");
document.body.appendChild(oDiv);
$("#oDiv").append(index_content);
}
/**
* 儲存興趣點
*/
function saveMarker() {
var content = $("#bz").val();
var time = getNowFormatDate();
require(["esri/layers/FeatureLayer", "esri/graphic"], function (FeatureLayer, Graphic) {
var attr = { "UserID": userid, "Content": content, "MarkTime": time };
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
//markgraphicLayer.clear();
var graphic = new Graphic(point, symbol1, attr, null);
var markurl = SysConfigInfo.getLayerURL("interestmarkpoint");
markurl = markurl.replace("MapServer", "FeatureServer/0");
var interestLayer = new FeatureLayer(markurl);
interestLayer.applyEdits([graphic], null, null, function () {
alert("新增成功!");
canelMarker();
/*swal({
title: "",
text: "儲存成功",
type: "success",
});*/
mark = false;
canMark = true;
dynamicservice_interest.refush();
dynamicservice_interest.visible=true;
/*restMapToolBarImg();
canelMarker();
var layer = map_home.getLayer("101");
layer.refresh();*/
});
});
}
/**
* 取消興趣點
*/
function canelMarker() {
restMapToolBarImg();
mark = false;
canMark=true;
var node = document.getElementById('oDiv');//通過id你要刪除的div
if (node != null) {
document.body.removeChild(node);
}
//if(hassaved==0){
markgraphicLayer.clear();
//}
}
/**
* 刪除標籤
*/
function dropMark() {
require(["esri/layers/FeatureLayer", "esri/graphic", "esri/dijit/editing/Delete"],
function (FeatureLayer, Graphic, Delete) {
$.post("rest/dataoperate/dropMark", { id: thisOBJECTID }, function (result) {
if (result) {
alert("刪除成功!");
var layer = dynamicservice_interest;;
layer.refresh();
markgraphicLayer.clear();
map.infoWindow.hide();
} else {
alert("刪除失敗");
}
});
});
}
/**
* 獲取時間
* @returns {String}
*/
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2=":";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hour=date.getHours();
var minutes=date.getMinutes();
var seconds=date.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
if(hour<10){
hour = "0" + hour;
}
if(minutes<10){
minutes = "0" + minutes;
}
if(seconds<10){
seconds = "0" + seconds;
}
var currentdate = year + seperator1 + month + seperator1 + strDate+" "+hour+seperator2+minutes+seperator2+seconds;
return currentdate;
}
/**
* 興趣點圖層符號化
*/
function markMapShowPoint(){
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
var query = new esri.tasks.Query();
query.returnGeometry = true;
query.where="1='1'";
var queryTask = new esri.tasks.QueryTask(SysConfigInfo.getLayerURL("interestmarkpoint")+ "/0");
queryTask.execute(query, function(results) {
var arr=results.features;
if(arr.length>0){
for(var i=0;i<arr.length;i++){
var point = arr[i].geometry;
var graphic = new esri.Graphic(point, symbol1);
markgraphicLayer.add(graphic);
}
}
});
}
/**
* //恢復所有的地圖工具欄圖示
*/
function restMapToolBarImg() {
$(".d2_li").attr("src", "./images/2d3d.png");
$(".rang_li").attr("src", "./images/rang.png");
$(".area_li").attr("src", "./images/area.png");
$(".bookmark_li").attr("src", "./images/bookmark.png");
$(".print_li").attr("src", "./images/print.png");
}
function zoomBig() {
map.setZoom(map.getZoom()+1);
};
// 縮小
function zoomSmall() {
map.setZoom(map.getZoom()-1);
};
// 全圖
function zoomTotal() {
restMapToolBarImg();
$(".d2_li").attr("src", "./images/2d3d_ed.png");
map.setExtent(initialExtent);
};
var toolbar_measure=null;
var measuregeometry;
var geometryService;
function initToolbar() {
toolbar_measure = new esri.toolbars.Draw(map);
//新增toolbar畫圖完成後事件監聽呼叫 doMeasure
dojo.connect(toolbar_measure, "onDrawEnd", doMeasure);
//例項化GeometryService
var serviceurl=SysConfigInfo.getLayerURL("geometryservice");
geometryService = new esri.tasks.GeometryService(serviceurl);
}
var lengthClick=true;
// 測距
function zoomLength() {
//restMapToolBarImg();
areaClick=true;
if(lengthClick){
canelMarker();
$(".rang_li").attr("src", "./images/rang_ed.png");
if(toolbar_measure==null)initToolbar();
map.graphics.clear();
toolbar_measure.activate(esri.toolbars.Draw.POLYLINE);
canMouseSearch=false;
lengthClick=false;
}else{
lengthClick=true;
restMapToolBarImg();
toolbar_measure.deactivate();
}
};
var areaClick=true;
// 測面積
function zoomSquare() {
lengthClick=true;
if(areaClick){
//restMapToolBarImg();
canelMarker();
$(".area_li").attr("src", "./images/area_ed.png");
if(toolbar_measure==null)initToolbar();
map.graphics.clear();
toolbar_measure.activate(esri.toolbars.Draw.POLYGON);
canMouseSearch=false;
areaClick=false;
}else{
areaClick=true;
restMapToolBarImg();
toolbar_measure.deactivate();
}
};
//量算
function doMeasure(geometry) {
measuregeometry = geometry;
toolbar_measure.deactivate();
var symbol="";
switch (geometry.type) {
case "polyline":
symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,
new dojo.Color([0, 0, 0]), 2);
break;
case "polygon":
symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_NONE,
new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT,
new dojo.Color([255, 0, 0]), 2),
new dojo.Color([255, 255, 0, 0.25]));
break;
}
//設定樣式
var graphic = new esri.Graphic(geometry,symbol);
//清除上一次的畫圖內容
map.graphics.add(graphic);
//進行投影轉換,完成後呼叫projectComplete
MeasureGeometry(geometry);
}
//投影轉換完成後呼叫方法
function MeasureGeometry(geometry) {
//如果為線型別就進行lengths距離測算
if (geometry.type == "polyline") {
var lengthParams = new esri.tasks.LengthsParameters();
lengthParams.polylines = [geometry];
lengthParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
lengthParams.geodesic = true;
lengthParams.polylines[0].spatialReference = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.lengths(lengthParams);
dojo.connect(geometryService, "onLengthsComplete", outputDistance);
}
//如果為面型別需要先進行simplify操作在進行面積測算
else if (geometry.type == "polygon") {
var areasAndLengthParams = new esri.tasks.AreasAndLengthsParameters();
areasAndLengthParams.lengthUnit = esri.tasks.GeometryService.UNIT_METER;
areasAndLengthParams.areaUnit = esri.tasks.GeometryService.UNIT_SQUARE_METERS;
this.outSR = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.project([geometry], this.outSR, function (geometry) {
geometryService.simplify(geometry, function (simplifiedGeometries) {
areasAndLengthParams.polygons = simplifiedGeometries;
areasAndLengthParams.polygons[0].spatialReference = new esri.SpatialReference({"wkt":"PROJCS[\"CGCS_2000_Albers\",GEOGCS[\"GCS_CGCS_2000\",DATUM[\"D_CGCS_2000\",SPHEROID[\"CGCS_2000\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Albers\"],PARAMETER[\"false_easting\",0.0],PARAMETER[\"false_northing\",0.0],PARAMETER[\"central_meridian\",105.0],PARAMETER[\"standard_parallel_1\",25.0],PARAMETER[\"standard_parallel_2\",47.0],PARAMETER[\"latitude_of_origin\",0.0],UNIT[\"Meters\",1.0]]"});
geometryService.areasAndLengths(areasAndLengthParams);
});
});
dojo.connect(geometryService, "onAreasAndLengthsComplete", outputAreaAndLength);
}
}
//顯示測量距離
function outputDistance(result) {
var CurX = measuregeometry.paths[0][measuregeometry.paths[0].length - 1][0];
var CurY = measuregeometry.paths[0][measuregeometry.paths[0].length - 1][1];
var CurPos = new esri.geometry.Point(CurX, CurY, map.spatialReference);
map.infoWindow.setTitle("距離測量");
map.infoWindow.setContent(" 測 量 長 度 : <strong>" + parseInt(String(result.lengths[0])) + "米</strong>");
map.infoWindow.show(CurPos);
}
//顯示測量面積
function outputAreaAndLength(result) {
var CurX = (measuregeometry.getExtent().xmax + measuregeometry.getExtent().xmin) / 2;
var CurY = (measuregeometry.getExtent().ymax + measuregeometry.getExtent().ymin) / 2;
var CurPos = new esri.geometry.Point(CurX, CurY, map.spatialReference);
map.infoWindow.setTitle("面積測量");
map.infoWindow.setContent(" 面積:" + parseInt(String(result.areas[0])) + "平方米(" + parsefloat(String(0.0015*result.areas[0])) + "畝) <br>\
周長:" + parseInt(String(result.lengths[0])) + "米");
map.infoWindow.show(CurPos);
}
//地圖列印
function printMap(){
//restMapToolBarImg();
canelMarker();
if(toolbar_measure!==null){
toolbar_measure.deactivate();
}
areaClick=true;
lengthClick=true;
$(".print_li").attr("src", "./images/print_ed.png");
require(["esri/tasks/PrintTemplate",
"esri/tasks/PrintTask",
"esri/tasks/PrintParameters"], function (PrintTemplate, PrintTask, PrintParameters) {
//建立地圖列印物件
debugger
var printUrl = SysConfigInfo.getLayerURL("PrintService");
var printMap = new PrintTask(printUrl);
//建立地圖列印模版
var template = new PrintTemplate();
//建立地圖的列印引數,引數裡面包括:模版和地圖
var params = new PrintParameters();
//輸出圖片的空間參考
printMap.outSpatialReference = map.SpatialReference;
//列印圖片的各種引數
template.exportOptions = {
width: 1000,
height: 1000,
dpi: 96
};
var tText = "地圖列印";
var aText = "map";
var tempString = "map";
//列印輸出的格式
template.format = "PDF";
//輸出地圖的佈局
template.layout = "A4 Landscape";
// template.showLabels="true";
//設定列印地圖排版資訊
template.layoutOptions = {
"hasCustomTextElements": true,
"authorText": aText,
"copyrightText": tempString,
"legendLayers": [],
"titleText": tText,
"scalebarUnit": "Kilometers",
"customTextElements": [{ "Text": "123456" },
{ "SubTitle": "Te123456" }
]
};
//設定引數地圖
params.map = map;
//設定引數模版
params.template = template;
//執行結果
printMap.execute(params, function (result) {
//網頁開啟生成的地圖
if (result != null) {
// debugger;
url = result.url;
printevent(url);
}
});
});
}
function printevent(url) {
// 開啟頁面,此處最好使用提示頁面
var newWin = window.open("rest/page/index");
var ajax = $.ajax({
});
// addWaterMarker("中科天啟",url);
ajax.done(function () {
// 重定向到目標頁面
newWin.location.href = url;
});
}
/**
* 書籤方法
*/
var point;
function bookMark() {
restMapToolBarImg();
if(toolbar_measure!==null){
toolbar_measure.deactivate();
}
areaClick=true;
lengthClick=true;
// 顯示書籤的提示資訊
//bookMarkTips();
if(canMark){
mark = true;
canMark=false;
$(".bookmark_li").attr("src", "./images/bookmark_ed.png");
}else{
mark = false;
canMark=true;
}
}
/**
* 書籤提示資訊---文字跟隨圖示移動
*/
function bookMarkTips() {
// $("#map_div").prepend("#bookmarkTxt");
$("#bookmarkTxt").show();
var container = document.getElementById("map_div");
var p = container.getElementsByTagName("span");
document.onmousemove = function () {
p[0].style.left = event.clientX + 20 + "px";
p[0].style.top = event.clientY + 6 + "px";
for (var i = 1; i < p.length; i++) {
p[i].style.left = p[i - 1].offsetLeft + "px";
p[i].style.top = p[i - 1].offsetTop + "px";
}
}
}
function addMarker(xx, yy, screenpoint) {
if (mark) {
//設定標註的經緯度
var pt = new esri.geometry.Point(xx, yy, map.spatialReference);
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
var graphic = new esri.Graphic(pt, symbol1);
markgraphicLayer.add(graphic);
//$("#bookmarkTxt").hide();
openWindow(screenpoint);
point = pt;
}
}
/**
* 開啟資訊視窗
*/
function openWindow(screenpoint) {
var oDiv = document.createElement('div');
oDiv.setAttribute("id", "oDiv");
oDiv.style.left = screenpoint.x + 'px'; // 指定建立的DIV在文件中距離左側的位置
oDiv.style.top = screenpoint.y + 'px'; // 指定建立的DIV在文件中距離頂部的位置
var index_content = '<label>標記點採集</label>' +
'<span>描述:</span><textarea id="bz" style="margin-left:46px;margin-bottom:9px;"></textarea>' +
'<div class="btnGroup_div" style="float:right;margin-right:10px;"><button class="canelBtn btn btn-sm btn-success" onclick="canelMarker()" style="margin-right: 6px;">取消</button>' +
'<button class="saveBtn btn btn-sm btn-info" onclick="saveMarker()">儲存</button></div>';
// $(index_content).appendTo("#oDiv");
document.body.appendChild(oDiv);
$("#oDiv").append(index_content);
}
/**
* 儲存興趣點
*/
function saveMarker() {
var content = $("#bz").val();
var time = getNowFormatDate();
require(["esri/layers/FeatureLayer", "esri/graphic"], function (FeatureLayer, Graphic) {
var attr = { "UserID": userid, "Content": content, "MarkTime": time };
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
//markgraphicLayer.clear();
var graphic = new Graphic(point, symbol1, attr, null);
var markurl = SysConfigInfo.getLayerURL("interestmarkpoint");
markurl = markurl.replace("MapServer", "FeatureServer/0");
var interestLayer = new FeatureLayer(markurl);
interestLayer.applyEdits([graphic], null, null, function () {
alert("新增成功!");
canelMarker();
/*swal({
title: "",
text: "儲存成功",
type: "success",
});*/
mark = false;
canMark = true;
dynamicservice_interest.refush();
dynamicservice_interest.visible=true;
/*restMapToolBarImg();
canelMarker();
var layer = map_home.getLayer("101");
layer.refresh();*/
});
});
}
/**
* 取消興趣點
*/
function canelMarker() {
restMapToolBarImg();
mark = false;
canMark=true;
var node = document.getElementById('oDiv');//通過id你要刪除的div
if (node != null) {
document.body.removeChild(node);
}
//if(hassaved==0){
markgraphicLayer.clear();
//}
}
/**
* 刪除標籤
*/
function dropMark() {
require(["esri/layers/FeatureLayer", "esri/graphic", "esri/dijit/editing/Delete"],
function (FeatureLayer, Graphic, Delete) {
$.post("rest/dataoperate/dropMark", { id: thisOBJECTID }, function (result) {
if (result) {
alert("刪除成功!");
var layer = dynamicservice_interest;;
layer.refresh();
markgraphicLayer.clear();
map.infoWindow.hide();
} else {
alert("刪除失敗");
}
});
});
}
/**
* 獲取時間
* @returns {String}
*/
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2=":";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
var hour=date.getHours();
var minutes=date.getMinutes();
var seconds=date.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
if(hour<10){
hour = "0" + hour;
}
if(minutes<10){
minutes = "0" + minutes;
}
if(seconds<10){
seconds = "0" + seconds;
}
var currentdate = year + seperator1 + month + seperator1 + strDate+" "+hour+seperator2+minutes+seperator2+seconds;
return currentdate;
}
/**
* 興趣點圖層符號化
*/
function markMapShowPoint(){
var symbol1 = new esri.symbol.PictureMarkerSymbol("images/locat.png", 25, 25);
var query = new esri.tasks.Query();
query.returnGeometry = true;
query.where="1='1'";
var queryTask = new esri.tasks.QueryTask(SysConfigInfo.getLayerURL("interestmarkpoint")+ "/0");
queryTask.execute(query, function(results) {
var arr=results.features;
if(arr.length>0){
for(var i=0;i<arr.length;i++){
var point = arr[i].geometry;
var graphic = new esri.Graphic(point, symbol1);
markgraphicLayer.add(graphic);
}
}
});
}
/**
* //恢復所有的地圖工具欄圖示
*/
function restMapToolBarImg() {
$(".d2_li").attr("src", "./images/2d3d.png");
$(".rang_li").attr("src", "./images/rang.png");
$(".area_li").attr("src", "./images/area.png");
$(".bookmark_li").attr("src", "./images/bookmark.png");
$(".print_li").attr("src", "./images/print.png");
}