";
var layer = graphic.getLayer();
if (graphic.geometry.type == "polygon") {
var results = geodesicUtils.geodesicAreas([graphic.geometry], Units.SQUARE_METERS);
var result = results[0];
if (result > 100000000) {
result = (result / 1000000).toFixed(2) + "平方千米";
} else if (result > 10000) {
result = (result / 10000).toFixed(2) + "公顷";
} else {
result = result.toFixed(0) + "平方米";
}
content += "
叠加面积约为:" + result + "
";
} else if (graphic.geometry.type == "polyline") {
var results = geodesicUtils.geodesicLengths([graphic.geometry], Units.METERS);
var result = results[0];
if (result > 1000) {
result = (result / 1000).toFixed(3) + "公里";
} else {
result = result.toFixed(0) + "米";
}
content += "
叠加长度约为:" + result + "
";
}
for (var a = 0; a < layer.fields.length; a++) {
var ming = layer.fields[a].name;
var ali = layer.fields[a].alias;
if (ali != "OBJECTID") {
var regs = new RegExp("[\\u4E00-\\u9FFF]+", "g");
if (regs.test(ali) && graphic.attributes[ming] != null) {
content += "
");
$("#space_idData").after("");
for (var i in features) {
var feature = features[i];
feature.attributes.TOTAL_AREA = (feature.attributes.TOTAL_AREA - 0).toFixed(2);
if (feature.geometry.type === "point" || feature.geometry.type === "multipoint") {
var symbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 10,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 255, 255]), 1),
new dojo.Color([0, 255, 255]));
} else if (feature.geometry.type === "line" || feature.geometry.type === "polyline") {
var symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 255, 255]), 2);
} else {
var symbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0, 1]), 1), new Color([0, 255, 255, 0.65]));
}
feature.setSymbol(symbol);
SpaceObj.intersect_graphicslayer.add(feature);
if (SpaceObj.intersect_graphicslayer.name.indexOf("城") != -1 && SpaceObj.intersect_graphicslayer.name.indexOf("湿") != -1) {
$('#space_idData').append("
");
}
on($('#space_idData tr:last'), "click", lang.hitch(feature, function (evt) {
var cPoint;
switch (this.geometry.type) {
case "point":
cPoint = new Point(this.geometry.x, this.geometry.y, SpaceObj._map.spatialReference); // 实例化一个点
break;
default:
var taxLotExtent = this.geometry.getExtent();
cPoint = taxLotExtent.getCenter();
break;
}
// console.log(this.getContent())
SpaceObj._map.infoWindow.setTitle(this.getTitle());
SpaceObj._map.infoWindow.setContent(this.getContent());
SpaceObj._map.infoWindow.show(cPoint);
SpaceObj._map.centerAt(cPoint);
}));
}
// console.log(SpaceObj.intersect_graphicslayer.displayField);
if (features.length > 10) {
SpaceObj._Result_fenye(1, 10);
}
clearTimeout(SpaceObj.timer);
SpaceObj.timer = null;
var featureExtent = graphicsUtils.graphicsExtent(features);
SpaceObj._map.setExtent(featureExtent);
$("#bg").hide();
// $("#interesect").remove();
},
//分页函数
_Result_fenye: function (pno, psize) {
var itable = document.getElementById("space_idData");
var num = itable.rows.length; //表格所有行数(所有记录数)
//console.log(num);
var totalPage = 0; //总页数
var pageSize = psize; //每页显示行数
//总共分几页
if (num / pageSize > parseInt(num / pageSize)) {
totalPage = parseInt(num / pageSize) + 1;
} else {
totalPage = parseInt(num / pageSize);
}
var currentPage = pno; //当前页数
var startRow = (currentPage - 1) * pageSize + 1; //开始显示的行 31
var endRow = currentPage * pageSize; //结束显示的行 40
endRow = (endRow > num) ? num : endRow;
//console.log(endRow);
//遍历显示数据实现分页
for (var i = 1; i < (num + 1); i++) {
var irow = itable.rows[i - 1];
if (i >= startRow && i <= endRow) {
irow.style.display = "block";
} else {
irow.style.display = "none";
}
}
var tempStr = "共" + num + "条记录 分" + totalPage + "页 当前第" + currentPage + "页";
if (currentPage > 1) {
tempStr += "首页<";
tempStr += ""
} else {
tempStr += "首页";
tempStr += "<上一页";
}
if (currentPage < totalPage) {
tempStr += ">";
tempStr += "尾页";
} else {
tempStr += "下一页>";
tempStr += "尾页";
}
document.getElementById("space_barcon").innerHTML = tempStr;
},
//点击添加事件,根据输入坐标和所选坐标系,在地图中加入点
_addpoint: function () {
//获取所填写的坐标
var Coordinates = $('#input_coordinate').val();
$('#input_coordinate').val("");
$('#input_coordinate').focus();
if ((Coordinates == "") || (Coordinates.indexOf(",") <= -1)) {
alert("请按照格式输入坐标");
return;
}
var long_lat = Coordinates.split(",");
var long = long_lat[0];
var lat = long_lat[1];
if ((long > 180 && lat < 90) || (long < 180 && lat > 90) || isNaN(lat) || isNaN(long)) {
alert("请输入规范的坐标");
return;
}
if (long > 0 && long < 180 && lat < 90 && lat > 0) {
//获取选中的坐标系
var CoordinatesSys = $('#coordinate input[name="coor"]:checked ').val();
switch (CoordinatesSys) {
case "CGCS2000":
var point = new Point(parseFloat(long), parseFloat(lat), new SpatialReference(4490)); // 实例化一个点
SpaceObj.inputgeometry.push(point); //添加至点数组
var simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CROSS, 10, //定义一个点符号样式
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1),
new Color([0, 255, 0, 0.55]));
var pt = new esri.Graphic(point, simpleMarkerSymbol);
SpaceObj.input_graphicslayer.add(pt); //添加坐标点
SpaceObj._map.centerAndZoom(point, 7); //定位至该坐标点
break;
case "Xian1980":
var wkid = 4610;
//转换坐标系至CGCS2000
var poin = new Point(parseFloat(long), parseFloat(lat), new SpatialReference(wkid));
var projectParameters = new ProjectParameters();
projectParameters.geometries = [poin];
projectParameters.outSR = new SpatialReference(4490);
SpaceObj.geometryservice.project(projectParameters, function (result) {
console.log(result[0]);
SpaceObj.inputgeometry.push(result[0]); //添加至点数组
var simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CROSS, 10, //定义一个点符号样式
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1),
new Color([0, 255, 0, 0.55]));
var pt = new esri.Graphic(result[0], simpleMarkerSymbol);
SpaceObj.input_graphicslayer.add(pt); //添加坐标点
SpaceObj._map.centerAndZoom(result[0], 7); //定位至该坐标点
return;
});
break;
default:
break;
}
} else {
//获取选中的坐标系
var CoordinatesSys = $('#coordinate input[name="coor"]:checked ').val();
var mm = long.toString();
var nn = mm.split(".");
var yy = nn[0];
if (yy.length >= 8) {
var zz = yy.substring(2, yy.length);
long = zz + "." + nn[1];
long = parseFloat(long);
}
switch (CoordinatesSys) {
case "CGCS2000":
var wkid = 4548;
//转换坐标系至CGCS2000
var poin = new Point(parseFloat(long), parseFloat(lat), new SpatialReference(wkid));
var projectParameters = new ProjectParameters();
projectParameters.geometries = [poin];
projectParameters.outSR = new SpatialReference(4490);
SpaceObj.geometryservice.project(projectParameters, function (result) {
SpaceObj.inputgeometry.push(result[0]); //添加至点数组
var simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CROSS, 10, //定义一个点符号样式
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1),
new Color([255, 0, 0, 1]));
var pt = new esri.Graphic(result[0], simpleMarkerSymbol);
SpaceObj.input_graphicslayer.add(pt); //添加坐标点
SpaceObj._map.centerAndZoom(result[0], 7); //定位至该坐标点
return;
});
break;
case "Xian1980":
var wkid = 2384;
//转换坐标系至CGCS2000
var poin = new Point(parseFloat(long), parseFloat(lat), new SpatialReference(wkid));
var projectParameters = new ProjectParameters();
projectParameters.geometries = [poin];
projectParameters.outSR = new SpatialReference(4490);
SpaceObj.geometryservice.project(projectParameters, function (result) {
SpaceObj.inputgeometry.push(result[0]); //添加至点数组
var simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CROSS, 10, //定义一个点符号样式
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1),
new Color([255, 0, 0, 1]));
var pt = new esri.Graphic(result[0], simpleMarkerSymbol);
SpaceObj.input_graphicslayer.add(pt); //添加坐标点
SpaceObj._map.centerAndZoom(result[0], 7); //定位至该坐标点
return;
});
break;
default:
break;
}
}
},
//完成添加事件,根据所选的几何类型,生成对应的几何要素
_addfeatures: function () {
var type = $("#graphic_type input[name='abc']:checked").val();
switch (parseInt(type)) {
case 1:
point();
break;
case 2:
line();
break;
case 3:
polygon();
break;
default:
break;
}
//生成点
function point() {
if (SpaceObj.inputgeometry.length < 1) {
alert("先添加坐标点");
return;
}
for (var num in SpaceObj.inputgeometry) {
SpaceObj.inputfeatures.push(new Graphic(SpaceObj.inputgeometry));
}
SpaceObj.inputgeometry = [];
return;
}
//生成线
function line() {
if (SpaceObj.inputgeometry.length < 1) {
alert("先添加坐标点");
return;
}
var symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0, 0.45]), 2);
var polyline = new Polyline(new SpatialReference({
wkid: 4490
}));
polyline.addPath(SpaceObj.inputgeometry);
var gra_line = new Graphic(polyline, symbol);
SpaceObj.inputfeatures.push(gra_line);
SpaceObj.inputgeometry = [];
SpaceObj.input_graphicslayer.add(gra_line);
return;
}
//生成面
function polygon() {
if (SpaceObj.inputgeometry.length < 1) {
alert("先添加坐标点");
return;
}
var polygon = new Polygon(new SpatialReference({
wkid: 4490
}));
var ring = 0;
var rings = new Array([]);
var first = true;
for (var num in SpaceObj.inputgeometry) {
rings[ring].push(SpaceObj.inputgeometry[num]);
if (!first && rings[ring][0].x == SpaceObj.inputgeometry[num].x && rings[ring][0].y == SpaceObj.inputgeometry[num].y) {
polygon.addRing(rings[ring]);
if (parseInt(num) < parseInt(SpaceObj.inputgeometry.length - 1)) {
rings.push(new Array());
ring++;
first = true;
continue;
}
}
first = false;
}
if (rings[ring][0].x != SpaceObj.inputgeometry[num].x || rings[ring][0].y != SpaceObj.inputgeometry[num].y || rings[ring].length < 2) {
alert("多边形未闭合,请检查");
return;
}
rings = null;
SpaceObj.inputfeatures.push(polygon);
SpaceObj.inputgeometry = [];
SpaceObj.normalize(SpaceObj.inputfeatures);
return;
}
},
//标准化几何图形
normalize: function (polygons) {
normalizeUtils.normalizeCentralMeridian(polygons, SpaceObj.geometryservice).then(function (normalizedGeometries) {
console.log(normalizedGeometries);
var normalizedGeometrires_polygon = [];
for (var x in normalizedGeometries) {
normalizedGeometrires_polygon.push(normalizedGeometries[x]);
}
//简化多边形,并使用户绘制多边形拓扑正确
SpaceObj.geometryservice.simplify(normalizedGeometrires_polygon, function (geometries) {
var _geometries = geometries;
SpaceObj.inputfeatures = [];
var symbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 1]), 1), new Color([255, 0, 0, 0.45]));
for (var n in _geometries) {
var gra_polygon = new Graphic(_geometries[n], symbol);
SpaceObj.inputfeatures.push(gra_polygon);
SpaceObj.input_graphicslayer.add(gra_polygon);
}
return;
});
});
},
//绑定导入文件的事件
_init_import: function () {
$("#okBtn").unbind().click(lang.hitch(this, function (evt) {
SpaceObj.inputgeometry = [];
SpaceObj.inputfeatures = [];
var sds = $("#file_imp li");
for (var up = 0; up < sds.length; up++) {
if ($(sds[up]).hasClass("check")) {
if (up == 1 || up == 2) {
this.submitClick();
} else if (up == 3) {
this.submitClick_kml();
} else {
this.submitClick_shp();
}
}
}
}));
$('#file_imp li').unbind().click(function (evt) {
if (this.id == "txt_imp" || this.id == "excel_imp") {
$("#dis_imp").css({
"display": "block"
});
$(".ups").css({
"display": "none"
});
$(".upload").css({
"display": "block"
});
} else if (this.id == "kml_imp") {
$("#dis_imp").css({
"display": "none"
});
$(".ups").css({
"display": "none"
});
$("#upload_" + this.id).css({
"display": "block"
});
} else if (this.id == "shp_imp") {
$("#dis_imp").css({
"display": "none"
});
$(".ups").css({
"display": "none"
});
$("#upload_" + this.id).css({
"display": "block"
});
} else {
return;
}
$("#file_imp li").removeClass("check");
$("#" + this.id).addClass("check");
});
},
//以下都是导入文件的方法
submitClick: function () {
/*var pictureSymbol = new PictureMarkerSymbol("assets/images/location.png", 25, 25);*/
SpaceObj.input_graphicslayer.clear();
var sms = new SimpleMarkerSymbol();
sms.setColor(new Color([255, 0, 0]));
sms.setOutline(null);
sms.setSize("10");
console.log($(".upload")[0]);
console.log(new FormData($(".upload")[0]));
$.ajax({
url: ConfigData.txtAjax,
type: 'post',
data: new FormData($(".upload")[0]), // IE10以上版本支持
processData: false,
contentType: false,
dataType: 'json',
success: function (data) {
SpaceObj.input_graphicslayer.clear();
SpaceObj.inputfeatures = [];
if (data.error) {
alert(data.error);
} else {
SpaceObj.input_graphicslayer.clear();
switch (data.type) {
case "dian": {
for (var dd = 0; dd < data.data.length; dd++) {
var dian_data = data.data[dd];
for (var i = 0; i < dian_data.length; i++) {
var lat = dian_data[i].x;
var long = dian_data[i].y;
var poin = new Point(parseFloat(lat), parseFloat(long), new SpatialReference({
wkid: 4490
}));
var point = new Point(parseFloat(lat), parseFloat(long), new SpatialReference({
wkid: 4490
}));
var content = "";
content += "
";
content += "
" + "经度" + ":" + dian_data[i].x + "
";
content += "
" + "纬度" + ":" + dian_data[i].y + "
";
content += "
" + "名称" + ":" + dian_data[i].name + "
";
content += "
" + "备注" + ":" + dian_data[i].remark + "
";
content += "
";
var graphic = new esri.Graphic(poin, sms, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(dian_data[i].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.centerAndZoom(poin, 6);
}
}
}
break;
case "xian": {
var xian_arr = [];
var name;
var mai = data.data;
if (mai.length > 1) {
for (var dd = 0; dd < data.data.length; dd++) {
var polyline = new Polyline((new SpatialReference({
wkid: 4490
})));
var xian_data = data.data[dd];
if (xian_data.length > 1) {
for (var i = 0; i < xian_data.length; i++) {
xian_arr.push([xian_data[i].x, xian_data[i].y]);
name = xian_data[i].name;
}
polyline.addPath(xian_arr);
var sls = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 2);
var graphic = new esri.Graphic(polyline, sls, content);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
xian_arr = [];
} else {
alert("名称为'" + name + "'的坐标点个数少于2,不能构成线");
}
}
} else {
var xian_data = data.data[0];
for (var i = 0; i < xian_data.length; i++) {
var polyline = new Polyline((new SpatialReference({
wkid: 4490
})));
if (i != xian_data.length - 1) {
if (xian_data[i].no == xian_data[i + 1].no) {
xian_arr.push([xian_data[i].x, xian_data[i].y]);
} else {
xian_arr.push([xian_data[i].x, xian_data[i].y]);
name = xian_data[i].name;
if (xian_arr.length > 2 || xian_arr.length == 2) {
polyline.addPath(xian_arr);
var sls = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 2);
var content = "";
content += "
";
content += "
" + "名称" + ":" + xian_data[i].name + "
";
content += "
" + "备注" + ":" + xian_data[i].remark + "
";
content += "
";
var graphic = new esri.Graphic(polyline, sls, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(xian_data[i].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
xian_arr = [];
} else {
alert("名称为'" + name + "'的坐标点个数少于2,不能构成线");
}
}
} else {
xian_arr.push([xian_data[i].x, xian_data[i].y]);
name = xian_data[i].name;
if (xian_arr.length > 2 || xian_arr.length == 2) {
polyline.addPath(xian_arr);
var sls = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 2);
var content = "";
content += "
";
content += "
" + "名称" + ":" + xian_data[i].name + "
";
content += "
" + "备注" + ":" + xian_data[i].remark + "
";
content += "
";
var graphic = new esri.Graphic(polyline, sls, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(xian_data[i].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
} else {
alert("名称为'" + name + "'的坐标点个数少于2,不能构成线");
}
}
}
}
}
break;
case "mian": {
var mian_arr = [];
var name;
var mai = data.data;
if (mai.length > 1) {
for (var dd = 0; dd < data.data.length; dd++) {
var polygon = new Polygon(new SpatialReference({
wkid: 4490
}));
var mian_data = data.data[dd];
mian_arr = [];
if (mian_data.length > 3) {
for (var i = 0; i < mian_data.length; i++) {
mian_arr.push([mian_data[i].x, mian_data[i].y]);
name = mian_data[i].name;
}
polygon.addRing(mian_arr);
var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1), new Color([255, 255, 0, 0.45])
);
var graphic = new esri.Graphic(polygon, sfs, content);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
} else {
alert("名称为'" + name + "'的坐标点个数少于3,不能构成面");
}
}
} else {
var mian_data = data.data[0];
for (var i = 0; i < mian_data.length; i++) {
var polygon = new Polygon(new SpatialReference({
wkid: 4490
}));
if (i != mian_data.length - 1) {
if (mian_data[i].no == mian_data[i + 1].no) {
mian_arr.push([mian_data[i].x, mian_data[i].y]);
} else {
mian_arr.push([mian_data[i].x, mian_data[i].y]);
mian_arr.push(mian_arr[0]);
name = mian_data[i].name;
if (mian_arr.length > 4 || mian_arr.length == 4) {
polygon.addRing(mian_arr);
var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1), new Color([255, 255, 0, 0.45])
);
var content = "";
content += "
";
content += "
" + "名称" + ":" + mian_data[i].name + "
";
content += "
" + "备注" + ":" + mian_data[i].remark + "
";
content += "
";
var graphic = new esri.Graphic(polygon, sfs, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(mian_data[i].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
mian_arr = [];
} else {
alert("名称为'" + name + "'的坐标点个数少于3,不能构成面");
}
}
} else {
mian_arr.push([mian_data[i].x, mian_data[i].y]);
mian_arr.push(mian_arr[0]);
name = mian_data[i].name;
if (mian_arr.length > 4 || mian_arr.length == 4) {
polygon.addRing(mian_arr);
var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1), new Color([255, 255, 0, 0.45])
);
var content = "";
content += "
";
content += "
" + "名称" + ":" + mian_data[i].name + "
";
content += "
" + "备注" + ":" + mian_data[i].remark + "
";
content += "
";
var graphic = new esri.Graphic(polygon, sfs, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(mian_data[i].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
graphic.name = "mian";
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
} else {
alert("名称为'" + name + "'的坐标点个数少于3,不能构成面");
}
}
}
}
//SpaceObj._map.setExtent(SpaceObj.input_graphicslayer._extent.expand(5));
}
break;
}
/*SpaceObj._map.setExtent(graphic._extent.expand(1.5)); */
/*SpaceObj.input_graphicslayer.name="sss";
SpaceObj.input_graphicslayer.id="sss";*/
/*SpaceObj.input_graphicslayer.className="sss";
SpaceObj.input_graphicslayer.layerId="sss";
SpaceObj.input_graphicslayer.Type="sss";*/
//SpaceObj._map.setExtent(new Extent(SpaceObj.input_graphicslayer.initialExtent, new SpatialReference({wkid:4490})));
}
},
error: function (e) {
console(e);
alert("错误!" + e.status + ":" + e.statusText);
}
});
return false;
},
submitClick_kml: function () {
var layerDefinition = {
"geometryType": "esriGeometryPolygon",
"fields": [{
"name": "BUFF_DIST",
"type": "esriFieldTypeInteger",
"alias": "Buffer Distance"
}]
};
var sms = new SimpleMarkerSymbol();
sms.setColor(new Color([255, 0, 0]));
sms.setOutline(null);
sms.setSize("10");
SpaceObj.input_graphicslayer.clear();
$.ajax({
url: ConfigData.kmlAjax,
type: 'post',
data: new FormData($("#upload_kml_imp")[0]), // IE10以上版本支持
processData: false,
contentType: false,
dataType: 'json',
success: function (data) {
SpaceObj.input_graphicslayer.clear();
SpaceObj.inputfeatures = [];
if (data.error) {
alert(data.error);
} else {
SpaceObj.input_graphicslayer.clear();
var Model = data[0].readInputModels;
var Line = data[0].readInputModelLines;
var Mian = data[0].readInputModelMians;
/*============点===================*/
if (Model.length > 0) {
var points = [];
var attributes = [];
for (var i = 0; i < Model.length; i++) {
var lat = Model[i].longitude;
var long = Model[i].latitude;
var poin = new Point(parseFloat(lat), parseFloat(long), new SpatialReference({
wkid: parseInt(4490)
}));
points[i] = poin;
attributes[i] = {
name: Model[i].name,
remark: Model[i].remark
};
}
var PrjParams = new ProjectParameters();
PrjParams.geometries = points;
PrjParams.outSR = new SpatialReference({
wkid: 4490
});
geometryService.project(PrjParams, function (outputpoint) {
for (var int = 0; int < outputpoint.length; int++) {
var content = "";
content += "
";
content += "
" + "经度" + ":" + outputpoint[int].x + "
";
content += "
" + "纬度" + ":" + outputpoint[int].y + "
";
content += "
" + "名称" + ":" + attributes[int].name + "
";
content += "
" + "备注" + ":" + attributes[int].remark + "
";
content += "
";
var graphic = new esri.Graphic(outputpoint[int], sms, content);
var infoTemplate = new InfoTemplate();
infoTemplate.setTitle(attributes[int].name);
infoTemplate.setContent(content);
graphic.setInfoTemplate(infoTemplate);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
//SpaceObj._map.centerAndZoom(outputpoint[int], 6);
}
});
}
/*============结束===================*/
/*============线===================*/
if (Line.length > 0) {
var xian_arr = [];
var name;
for (var i = 0; i < Line.length; i++) {
var polyline = new Polyline((new SpatialReference({
wkid: 4490
})));
var xian_data = Line[i].readInputModels;
if (xian_data.length > 1) {
for (var yy = 0; yy < xian_data.length; yy++) {
xian_arr.push([xian_data[yy].longitude, xian_data[yy].latitude]);
name = xian_data[yy].name;
}
polyline.addPath(xian_arr);
var sls = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 2);
var graphic = new esri.Graphic(polyline, sls, "");
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
xian_arr = [];
} else {
alert("名称为'" + name + "'的坐标点个数少于2,不能构成线");
}
}
}
/*============结束===================*/
/*============面===================*/
if (Mian.length > 0) {
var mian_arr = [];
var name;
for (var dd = 0; dd < Mian.length; dd++) {
var polygon = new Polygon(new SpatialReference({
wkid: 4490
}));
var mian_data = Mian[dd].readInputModels;
mian_arr = [];
if (mian_data.length > 3) {
for (var i = 0; i < mian_data.length; i++) {
mian_arr.push([mian_data[i].longitude, mian_data[i].latitude]);
name = mian_data[i].name;
}
polygon.addRing(mian_arr);
var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([255, 0, 0]), 1), new Color([255, 255, 0, 0.45])
);
var graphic = new esri.Graphic(polygon, sfs, content);
SpaceObj.inputfeatures.push(graphic);
SpaceObj.input_graphicslayer.add(graphic);
SpaceObj._map.setExtent(graphic._extent.expand(5));
} else {
alert("名称为'" + name + "'的坐标点个数少于3,不能构成面");
}
}
}
/*========结束========*/
}
},
error: function (e) {
console(e);
alert("错误!" + e.status + ":" + e.statusText);
}
});
return false;
},
submitClick_shp: function () {
var SpaceObj = this;
$.ajax({
url: ConfigData.shpAjax,
type: 'post',
data: new FormData($("#upload_shp_imp")[0]), // IE10以上版本支持
processData: false,
contentType: false,
dataType: 'json',
success: function (data) {
// debugger;
SpaceObj.input_graphicslayer.clear();
SpaceObj.inputfeatures = [];
var jsonf = new GeoJsonUtil();
var json = jsonf.geojsonToArcGIS(data);
var features = [];
var geo;
var symbol;
for (var i = 0; i < json.length; i++) {
switch (json[i].geometry.type) {
case "Point":
geo = new Point();
geo.x = json[i].geometry.x;
geo.y = json[i].geometry.y;
symbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 10,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 1),
new dojo.Color([255, 0, 0]));
break;
case "Polygon":
geo = new Polygon();
geo.rings = json[i].geometry.rings;
symbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 1),
new dojo.Color([255, 0, 0, 0.45]));
break;
case "LineString":
var geo = new Polyline();
geo.paths = json[i].geometry.paths;
symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 2);
break;
}
geo.spatialReference.wkid = json[i].geometry.spatialReference.wkid;
g = new esri.Graphic(geo, symbol, json[i].attributes);
SpaceObj.inputfeatures.push(g);
SpaceObj.input_graphicslayer.add(g);
features.push(g);
}
/*var getuuid = uuid();
console.log(getuuid);
var newNode = { id:getuuid,name:data.layername,checked:true};
SpaceObj._zTree.addNodes(null, newNode);
ConfigData.layers[getuuid] = SpaceObj.input_graphicslayer;*/
var myFeatureExtent = graphicsUtils.graphicsExtent(features);
SpaceObj._map.setExtent(myFeatureExtent.expand(2));
},
error: function (e) {
console(e);
alert("错误!" + e.status + ":" + e.statusText);
}
});
}
});
return Widget;
});