123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- var map, marker = null, editableLayers = null, url = iServerMap,dataUrl=iServerJieDaoSheQuData;;//初始化基本参数
- var workspace_qk=iServerJilinshengAndQikaiMap;//省矢量及区影像,固定加载。
- var workspace_jdsq=iServerJieDaoSheQuMap;//街道社区的地图服务路径,固定加载。
- //样例:省矢量图,当做经开矢量图使用
- var map_jilinShiLiang = L.supermap.tiledMapLayer(workspace_qk+'/吉林省矢量地图 ', {
- noWrap: true
- });
- //样例:经开影像图
- var map_qikaiYingXiang = L.supermap.tiledMapLayer( workspace_qk+'/经开影像 ', {
- noWrap: true
- });
- //样例:东风街道
- var map_dfjd = L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengjiedao', {
- noWrap: true
- });
- //样例:东风街道-创业社区
- var map_dfjd_chuangye = L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengchuangye', {
- noWrap: true
- });
- //样例:东风街道-杨柳社区
- var map_dfjd_yangliu = L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengyangliu', {
- noWrap: true
- });
- //东风昆仑社区
- var map_dfjd_kunlun = L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengl]kunlun', {
- noWrap: true
- });
- var mapPoint;////中心坐标点,区、街道、社区各个中心点不一样,灵活获取及配置,样例为东风街道中心坐标点
- var layersList=[];//配置需要加载的图层
- layersList.push(map_jilinShiLiang);//固定,省矢量图
- var zoom=0;//全局缩放比例,区:12,街道14
- function initMap(mapPoint,layersList,zoom){
- clear();
- // 默认加载全区矢量+影像+人房户地图+四个街道范围图,无社区建筑物图
- map = L.map('map', {
- preferCanvas: true,
- center: mapPoint,//初始化后中心坐标点,暂时不知道
- zoom: zoom,
- crs: L.CRS.EPSG4326,
- // crs: L.CRS.EPSG3857,
- zoomControl: true,
- doubleClickZoom: false,
- /*layers: [map_jilinShiLiang,map_qikaiYingXiang,map_dfjd,map_dfjd_chuangye,map_dfjd_yangliu]*/
- layers: layersList
- }).on({"dblclick": callbackFunction})/*.on('contextmenu',function(e){
- fun();
- })*/;
- editableLayers = new L.FeatureGroup().addTo(map);
- var options = {
- position: 'topleft',
- draw: {
- polyline: null,
- polygon: {},
- circlemarker: null,
- circle: null,
- rectangle: {},
- marker: null,
- remove: null
- }
- };
- var drawControl = new L.Control.Draw(options);
- map.addControl(drawControl);
- map.on(L.Draw.Event.CREATED, function (e) {
- var type = e.layerType,
- layer = e.layer;
- editableLayers.clearLayers();
- editableLayers.addLayer(layer);
- switch (type) {
- case 'rectangle':
- case 'polygon':
- kuangXuan(layer._latlngs);
- break;
- }
- });
- }
- $(function() {
- initAllMap();
- });
- function initAllMap(){
- // 默认加载全省矢量+汽开影像+人房户地图+四个街道范围图
- if(perFlag=="zhzx"){
- layersList.push(map_qikaiYingXiang);//固定,汽开影像
- //指挥中心或管理员登录,查看全区范围轮廓图
- mapPoint=iServerqiKaiQuMapCenterPoint;//全区中心点
- zoom=12;
- layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/qikaiquanqu', { noWrap: true }));//汽开全区
- // layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengjiedao', { noWrap: true }));//东风街道
- // layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/qianchengjiedao', { noWrap: true }));//前程街道
- // layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/jinchengjiedao', { noWrap: true }));//锦程街道
- // layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/fuminjiedao', { noWrap: true }));//富民街道
- }else if(perFlag=="jd"){
- layersList.push(map_qikaiYingXiang);//固定,汽开影像
- //街道登录,仅查看本街道范围轮廓图
- layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/'+layerId, { noWrap: true }));//加载本街道范围轮廓图
- mapPoint=getSuperMapCenterPoint(centerpointLat+","+centerpointLon);//本街道中心点
- zoom=14;
- /*layersList.push(map_dfjd_chuangye);//测试样例*/
- //街道登录后,查询本街道下所有社区建筑图,涉及图层:矢量图,影像图,街道图(layerId),本街道所有社区图
- //加载本街道下所有社区建筑图
- }
- initMap(mapPoint,layersList,zoom);
- }
- var resultData = [];
- function callbackFunction(e) {
- var lat = e.latlng.lat;
- var lng = e.latlng.lng;
- var polygon = L.circle([lat, lng], {radius: 10});//根据获取的坐标生成面,面直径为10,根据实际业务变动范围大小
- // var geometry = L.Util.transform(polygon, L.CRS.EPSG4326, L.CRS.EPSG3857);//坐标转换,此项目不涉及84和2000坐标转换
- var geometryParam = new SuperMap.GetFeaturesByGeometryParameters({
- //如果涉及到需要加载多个数据源及数据集,格式为datasetNames: ["building:东风创业","building:东风创业","building:东风创业"],如区指挥中心或街道指挥中心登录,则需加载多个数据源和数据集
- /*datasetNames: [datasourceName + ":" + datasetName],//["building:东风新立"]加载数据源和数据集*/
- datasetNames: datasource_datasetNames,//["building:东风创业"]
- geometry: polygon,//加载坐标
- spatialQueryMode: "INTERSECT"
- });
- L.supermap
- .featureService(dataUrl)
- .getFeaturesByGeometry(geometryParam, function (serviceResult) {
- console.log(serviceResult);
- if (!serviceResult.result) {
- return;
- }
- if (serviceResult.result.features.features.length === 0) {
- return;
- }
- if (marker) {
- marker.setLatLng(e.latlng);
- } else {
- marker = L.marker(e.latlng).addTo(map);
- }
- L.geoJSON(serviceResult.result.features.features, {
- onEachFeature: function (feature, layer) {
- /*marker.bindPopup("数据集名称:"+feature.properties.NAME + ', 建筑物标识:' + feature.properties.SMID).openPopup(marker.getLatLng());*/
- //此处根据数据集名称及建筑物标识,去后台查询,然后开展业务
- //此处根据resultDataSMID和resultDataName这两个集合的值,去后台进行业务查询
- $.modal.open("人房户单选", prefix + "/rfhSingle/"+feature.properties.NAME+"/"+feature.properties.SMID+"/NULL",1200, 750);
- }
- });
- });
- }
- var isYxt = true;//默认选中影像图,加载影像
- function getYxt(){
- isYxt = true;
- reloadData();
- /*map.remove();//移除地图对象,
- if(!isRfh){//判断,如果当前是事件地图,layersList里, 只存 全区的矢量、影像、轮廓 不存建筑
- layersList=[];
- layersList.push(map_jilinShiLiang);//固定,汽开矢量
- layersList.push(map_qikaiYingXiang);//固定,汽开影像
- if($("#jdId").val() == -1){//汽开全区轮廓图
- layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/qikaiquanqu', { noWrap: true }));//汽开全区
- }else {//选中具体街道、社区轮廓图
- for (var i = 0; i < map_jiedaoList.length; i++) {
- layersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_jiedaoList[i].layerId, {noWrap: true}));//加载本街道范围轮廓图
- }
- /!*for (var i = 0; i < map_shequList.length; i++) {//选择具体街道时加载街道下所有社区数据
- if (map_shequList[i].layerId != null && map_shequList[i].layerId != "") {
- layersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_shequList[i].layerId, {noWrap: true}));//加载本街道下所有社区建筑图
- datasource_datasetNames.push(map_shequList[i].datasourceName + ":" + map_shequList[i].datasetName);//["building:东风创业","building:东风创业","building:东风创业"],
- }
- }*!/
- }
- initMap(mapPoint,layersList,zoom);//重新初始化地图对象
- //调用获取事件并落点的方法
- $.eventPoint.init({
- deptId: $('#sqId').val()==-1?$('#jdId').val()==-1?0:$('#jdId').val():$('#sqId').val(),
- year:$("#year").val()
- });
- }else {//人房户 有矢量、影像、轮廓 并且 没有事件落点
- layersList=[];
- layersList.push(map_jilinShiLiang);//固定,汽开矢量
- layersList.push(map_qikaiYingXiang);//固定,汽开影像
- if($("#jdId").val() == -1){//汽开全区轮廓图
- layersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/qikaiquanqu', { noWrap: true }));//汽开全区
- }else {//选中具体街道、社区轮廓图
- for (var i = 0; i < map_jiedaoList.length; i++) {
- layersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_jiedaoList[i].layerId, {noWrap: true}));//加载本街道范围轮廓图
- }
- for (var i = 0; i < map_shequList.length; i++) {//选择具体街道时加载街道下所有社区数据
- if (map_shequList[i].layerId != null && map_shequList[i].layerId != "") {
- layersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_shequList[i].layerId, {noWrap: true}));//加载本街道下所有社区建筑图
- datasource_datasetNames.push(map_shequList[i].datasourceName + ":" + map_shequList[i].datasetName);//["building:东风创业","building:东风创业","building:东风创业"],
- }
- }
- }
- initMap(mapPoint,layersList,zoom);//重新初始化地图对象
- }*/
- }
- function getSlt(){
- isYxt = false;
- reloadData();
- /*map.remove();//移除地图对象,
- var sltLayersList=[];
- sltLayersList.push(map_jilinShiLiang);
- initMap(mapPoint,sltLayersList,zoom);//重新初始化地图对象,只加载矢量,保持原有的中心点及缩放等级。
- if(!isRfh) {//事件 //调用获取事件并落点的方法
- $.eventPoint.init({
- deptId: $('#sqId').val()==-1?$('#jdId').val()==-1?0:$('#jdId').val():$('#sqId').val(),
- year:$("#year").val()
- });
- }*/
- }
- var isRfh = true;//默认选中人房户,显示轮廓图
- function getPersonMap(){//点击人房户按钮
- isRfh = true;//人房户显示轮廓图
- reloadData();
- /*map.remove();//移除地图对象,
- var efhMapLayersList=[];
- var efhMapPoint;
- efhMapLayersList.push(map_jilinShiLiang);//吉林矢量
- if(isYxt) {//影像图
- efhMapLayersList.push(map_qikaiYingXiang);//汽开影像
- }
- if(perFlag=="zhzx"){
- if($("#jdId").val() == -1){
- //指挥中心或管理员登录,查看全区范围轮廓图
- efhMapPoint=iServerqiKaiQuMapCenterPoint;//全区中心点
- if(isYxt) {//影像图
- efhMapLayersList.push(L.supermap.tiledMapLayer(workspace_jdsq+'/qikaiquanqu', { noWrap: true }));//汽开全区
- }
- //efhMapLayersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengjiedao', { noWrap: true }));//东风街道
- //前程街道
- //锦程街道
- //富民街道
- zoom=12;
- }else {//选择街道、社区后加载具体街道中心点、轮廓图
- if(isYxt) {//影像图
- for (var i = 0; i < map_jiedaoList.length; i++) {
- efhMapLayersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_jiedaoList[i].layerId, {noWrap: true}));//加载本街道范围轮廓图
- }
- for (var i = 0; i < map_shequList.length; i++) {//选择具体街道时加载街道下所有社区数据
- if (map_shequList[i].layerId != null && map_shequList[i].layerId != "") {
- efhMapLayersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_shequList[i].layerId, {noWrap: true}));//加载本街道下所有社区建筑图
- datasource_datasetNames.push(map_shequList[i].datasourceName + ":" + map_shequList[i].datasetName);//["building:东风创业","building:东风创业","building:东风创业"],
- }
- }
- }
- if ($("#sqId").val() != -1 && map_shequList[0].centerpointLat != null && map_shequList[0].centerpointLat != "" && map_shequList[0].centerpointLon != null && map_shequList[0].centerpointLon != "") {
- zoom = 16;
- efhMapPoint = getSuperMapCenterPoint(map_shequList[0].centerpointLat + "," + map_shequList[0].centerpointLon);//本社区中心点
- } else {
- zoom = 14;
- efhMapPoint = getSuperMapCenterPoint(map_jiedaoList[0].centerpointLat + "," + map_jiedaoList[0].centerpointLon);//本街道中心点
- }
- }
- }else if(perFlag=="jd"){
- //街道登录,仅查看本街道范围轮廓图
- if(isYxt) {//影像图
- efhMapLayersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/'+layerId, { noWrap: true }));//加载本街道范围轮廓图
- }
- efhMapPoint=getSuperMapCenterPoint(centerpointLat+","+centerpointLon);//本街道中心点
- zoom=14;
- }
- initMap(efhMapPoint,efhMapLayersList,zoom);//重新初始化地图对象*/
- }
- function getEventMap(){//点击事件按钮
- isRfh = false;//事件不显示轮廓图
- reloadData();
- /*map.remove();//移除地图对象,
- var eventMapLayersList=[];
- var eventMapPoint;
- eventMapLayersList.push(map_jilinShiLiang);
- if(isYxt){//加载影像图
- eventMapLayersList.push(map_qikaiYingXiang);
- if($("#jdId").val() == -1){//汽开全区轮廓图
- eventMapLayersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/qikaiquanqu', { noWrap: true }));//汽开全区
- }else {//选中具体街道、社区轮廓图
- for (var i = 0; i < map_jiedaoList.length; i++) {
- eventMapLayersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_jiedaoList[i].layerId, {noWrap: true}));//加载本街道范围轮廓图
- }
- /!*for (var i = 0; i < map_shequList.length; i++) {//选择具体街道时加载街道下所有社区数据
- if (map_shequList[i].layerId != null && map_shequList[i].layerId != "") {
- layersList.push(L.supermap.tiledMapLayer(workspace_jdsq + '/' + map_shequList[i].layerId, {noWrap: true}));//加载本街道下所有社区建筑图
- datasource_datasetNames.push(map_shequList[i].datasourceName + ":" + map_shequList[i].datasetName);//["building:东风创业","building:东风创业","building:东风创业"],
- }
- }*!/
- }
- }
- if(perFlag=="zhzx"){
- if($("#jdId").val() == -1){
- //指挥中心或管理员登录,查看全区范围轮廓图
- eventMapPoint=iServerqiKaiQuMapCenterPoint;//全区中心点
- //////eventMapLayersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/dongfengjiedao', { noWrap: true }));//东风街道
- //前程街道
- //锦程街道
- //富民街道
- zoom=12;
- }else {//选择街道、社区后加载具体街道中心点
- if ($("#sqId").val() != -1 && map_shequList[0].centerpointLat != null && map_shequList[0].centerpointLat != "" && map_shequList[0].centerpointLon != null && map_shequList[0].centerpointLon != "") {
- zoom = 16;
- eventMapPoint = getSuperMapCenterPoint(map_shequList[0].centerpointLat + "," + map_shequList[0].centerpointLon);//本社区中心点
- } else {
- zoom = 14;
- eventMapPoint = getSuperMapCenterPoint(map_jiedaoList[0].centerpointLat + "," + map_jiedaoList[0].centerpointLon);//本街道中心点
- }
- }
- }else if(perFlag=="jd"){
- //街道登录,仅查看本街道范围轮廓图
- //////eventMapLayersList.push(L.supermap.tiledMapLayer( workspace_jdsq+'/'+layerId, { noWrap: true }));//加载本街道范围轮廓图
- eventMapPoint=getSuperMapCenterPoint(centerpointLat+","+centerpointLon);//本街道中心点
- zoom=14;
- }
- initMap(eventMapPoint,eventMapLayersList,zoom);
- $.eventPoint.init({
- deptId: $('#sqId').val()==-1?$('#jdId').val()==-1?0:$('#jdId').val():$('#sqId').val(),
- year:$("#year").val()
- });*/
- }
- function kuangXuan(arr) {
- var polygon = L.polygon([arr]);
- getBuildingList(polygon);
- }
- function clear() {
- if (editableLayers != null) {
- editableLayers.clearLayers();
- }
- if (marker != null) {
- marker.remove();
- marker = null;
- }
- }
- function getBuildingList(geometry){
- resultData=[];
- if(datasource_datasetNames==null||datasource_datasetNames==""||datasource_datasetNames=="undefined"){
- $.modal.alertWarning("未获取到建筑物,请重新选取!");
- return;
- }
- var geometryParam = new SuperMap.GetFeaturesByGeometryParameters({
- //如果涉及到需要加载多个数据源及数据集,格式为datasetNames: ["building:东风创业","building:东风创业","building:东风创业"],如区指挥中心或街道指挥中心登录,则需加载多个数据源和数据集
- /*datasetNames: [datasourceName + ":" + datasetName],//["building:东风新立"]加载数据源和数据集*/
- datasetNames: datasource_datasetNames,//["building:东风创业"],//
- geometry: geometry,
- toIndex: -1,
- // maxFeatures: 20,
- spatialQueryMode: "INTERSECT"
- });
- L.supermap
- .featureService(dataUrl)
- .getFeaturesByGeometry(geometryParam, function (serviceResult) {
- console.log(serviceResult);
- if (!serviceResult.result) {
- return;
- }
- if (serviceResult.result.features.features.length === 0) {
- return;
- }
- var smids='';
- var names='';
- var count=1;
- L.geoJSON(serviceResult.result.features.features, {
- onEachFeature: function (feature, layer) {
- count +=1;
- smids += feature.properties.SMID+",";
- names += feature.properties.NAME+",";
- }
- });
- if(count>400){
- $.modal.alertWarning("选择建筑物过多!,请重新选取!");
- return
- }
- //此处根据resultDataSMID和resultDataName这两个集合的值,去后台进行业务查询
- $.modal.open("全部楼栋", prefix + "/rfhMultiBefore/"+names+"/"+smids,1400, 720);
- });
- };
|