지반 단면도 및 편의성 개선
9
list.txt
|
|
@ -5,4 +5,11 @@ src\main\webapp\WEB-INF\jsp\sgis\com\board\boardList.jsp
|
||||||
src\main\resources\egovframework\mapper\sgis\board\PostMapper.xml
|
src\main\resources\egovframework\mapper\sgis\board\PostMapper.xml
|
||||||
src\main\webapp\WEB-INF\jsp\sgis\com\board\boardView.jsp
|
src\main\webapp\WEB-INF\jsp\sgis\com\board\boardView.jsp
|
||||||
src\main\webapp\WEB-INF\jsp\sgis\com\board\boardWrite.jsp
|
src\main\webapp\WEB-INF\jsp\sgis\com\board\boardWrite.jsp
|
||||||
src\main\resources\egovframework\mapper\sgis\board\MemberMapper.xml
|
src\main\resources\egovframework\mapper\sgis\board\MemberMapper.xml
|
||||||
|
src\main\webapp\com\js\main.map.js
|
||||||
|
src\main\webapp\WEB-INF\jsp\sgis\map\mapMain.jsp
|
||||||
|
src\main\webapp\WEB-INF\jsp\tiles\attribute\app.submenu.jsp
|
||||||
|
src\main\webapp\WEB-INF\jsp\sgis\map\mapInformation\sichudanNew.jsp
|
||||||
|
src\main\webapp\com\css\cross-section.css
|
||||||
|
src\main\webapp\com\js\cross-section.js
|
||||||
|
src\main\resources\egovframework\mapper\sgis\map\MapMainMapper.xml
|
||||||
|
|
@ -2,13 +2,51 @@ package sgis.map.mapper;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
|
||||||
@Mapper("MapMainMapper")
|
@Mapper("mapMainMapper")
|
||||||
public interface MapMainMapper {
|
public interface MapMainMapper {
|
||||||
|
|
||||||
EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception;
|
EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectHoleCount(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectHoleList(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectDistrict() throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectGrid1(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectDistrictSgg(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectOldItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dSido(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dGugun(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dDong(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dDetail(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap getGeneralData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getLinkLayerData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getSPTData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getSampleData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectInfoLastPage(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectInfoItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectWebDownloadLog(Map<String, Object> params) throws Exception; // dhlee 사용자별 다운로드 요청한 개수를 얻어온다.
|
||||||
|
|
||||||
|
List<EgovMap> selectProjectList(Map<String, Object> params) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package sgis.map.service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
import sgis.map.vo.MapInfoVO;
|
import sgis.map.vo.MapInfoVO;
|
||||||
|
|
@ -10,4 +11,43 @@ public interface MapMainService {
|
||||||
|
|
||||||
EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception;
|
EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
EgovMap selectHoleCount(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectHoleList(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectDistrict() throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectGrid1(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectDistrictSgg(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectOldItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dSido(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dGugun(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dDong(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> get3dDetail(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap getGeneralData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getLinkLayerData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getSPTData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> getSampleData(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectInfoLastPage(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<EgovMap> selectInfoItems(Map<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectWebDownloadLog(Map<String, Object> params) throws Exception; // dhlee 사용자별 다운로드 요청한 개수를 얻어온다.
|
||||||
|
|
||||||
|
List<EgovMap> selectProjectList(Map<String, Object> params) throws Exception; // dhlee
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package sgis.map.service.impl;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -14,12 +15,106 @@ import sgis.map.service.MapMainService;
|
||||||
public class MapMainServiceImpl implements MapMainService {
|
public class MapMainServiceImpl implements MapMainService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MapMainMapper MapMainMapper;
|
private MapMainMapper mapMainMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception {
|
public EgovMap selectMapInfoList(HashMap<String, Object> params) throws Exception {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
return MapMainMapper.selectMapInfoList(params);
|
return mapMainMapper.selectMapInfoList(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EgovMap selectHoleCount(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectHoleCount(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectHoleList(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectHoleList(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectItems(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectItems(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectDistrict() throws Exception {
|
||||||
|
return mapMainMapper.selectDistrict();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectGrid1(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectGrid1(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectDistrictSgg(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectDistrictSgg(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectOldItems(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectOldItems(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> get3dSido(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.get3dSido(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> get3dGugun(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.get3dGugun(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> get3dDong(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.get3dDong(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> get3dDetail(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.get3dDetail(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EgovMap getGeneralData(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.getGeneralData(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> getLinkLayerData(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.getLinkLayerData(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> getSPTData(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.getSPTData(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> getSampleData(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.getSampleData(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EgovMap selectInfoLastPage(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectInfoLastPage(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectInfoItems(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectInfoItems(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EgovMap selectWebDownloadLog(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectWebDownloadLog(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EgovMap> selectProjectList(Map<String, Object> params) throws Exception {
|
||||||
|
return mapMainMapper.selectProjectList(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,21 @@ import java.io.File;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.json.simple.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody; // Add this import
|
||||||
|
|
||||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
import sgis.app.service.AppInstrumentService;
|
import sgis.app.service.AppInstrumentService;
|
||||||
|
|
@ -28,6 +31,7 @@ import sgis.map.service.AppPredictService;
|
||||||
import sgis.map.service.MapMainService;
|
import sgis.map.service.MapMainService;
|
||||||
import sgis.map.vo.MapInfoVO;
|
import sgis.map.vo.MapInfoVO;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName : MapMainController.java
|
* @FileName : MapMainController.java
|
||||||
* @Date : 2022. 05. 10
|
* @Date : 2022. 05. 10
|
||||||
|
|
@ -38,7 +42,7 @@ import sgis.map.vo.MapInfoVO;
|
||||||
public class MapMainController extends BaseController {
|
public class MapMainController extends BaseController {
|
||||||
|
|
||||||
@Resource(name ="MapMainService")
|
@Resource(name ="MapMainService")
|
||||||
private MapMainService MapMainService;
|
private MapMainService mapMainService;
|
||||||
|
|
||||||
//입력시스템 서비스
|
//입력시스템 서비스
|
||||||
@Resource(name ="AppMainService")
|
@Resource(name ="AppMainService")
|
||||||
|
|
@ -363,4 +367,120 @@ public class MapMainController extends BaseController {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "/map/sichudanNew.do")
|
||||||
|
public String sichudanNew(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
|
||||||
|
String code = String.valueOf(params.get("code"));
|
||||||
|
|
||||||
|
String data = "";
|
||||||
|
try {
|
||||||
|
String[] hCodes = code.split(",");
|
||||||
|
for (int i = 0; i < hCodes.length; i++) {
|
||||||
|
data = data + hCodes[i].trim() + ",";
|
||||||
|
}
|
||||||
|
data = data.substring(0, data.length() - 1);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
//logger.debug("error", e);
|
||||||
|
data = "";
|
||||||
|
} catch (IndexOutOfBoundsException e) {
|
||||||
|
//logger.debug("error", e);
|
||||||
|
data = "";
|
||||||
|
} catch (Exception e) {
|
||||||
|
//logger.debug("error", e);
|
||||||
|
data = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
model.put("data", data);
|
||||||
|
return "/sgis/map/mapInformation/sichudanNew";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/map/getSichudanData.do", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE })
|
||||||
|
@ResponseBody
|
||||||
|
public JSONObject getSichudanData(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
|
||||||
|
StringBuffer sb = request.getRequestURL();
|
||||||
|
String url = sb.substring(0, sb.lastIndexOf("/"));
|
||||||
|
|
||||||
|
String code = String.valueOf(params.get("code"));
|
||||||
|
|
||||||
|
|
||||||
|
JSONObject responseJson = new JSONObject();
|
||||||
|
responseJson.put("jsonView", getSectionData(code));
|
||||||
|
return responseJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JSONObject getSectionData(String code) throws Exception {
|
||||||
|
|
||||||
|
code = code.trim();
|
||||||
|
|
||||||
|
Map<String, Object> params = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
|
||||||
|
String[] bussinessNHoleCode = code.split("\\|\\|");
|
||||||
|
|
||||||
|
params.put("businessCode", bussinessNHoleCode[0]);
|
||||||
|
params.put("holeCode", bussinessNHoleCode[1]);
|
||||||
|
|
||||||
|
|
||||||
|
EgovMap general = mapMainService.getGeneralData(params);
|
||||||
|
String[] values = String.valueOf(general.get("vlu")).split("\\|");
|
||||||
|
|
||||||
|
JSONObject resultJson = new JSONObject();
|
||||||
|
resultJson.put("PCODE", values[0]);
|
||||||
|
resultJson.put("ALTITUDE", values[1]);
|
||||||
|
resultJson.put("DEPTH", values[2]);
|
||||||
|
|
||||||
|
JSONObject position = new JSONObject();
|
||||||
|
position.put("X", values[3]);
|
||||||
|
position.put("Y", values[4]);
|
||||||
|
|
||||||
|
resultJson.put("TM", position);
|
||||||
|
|
||||||
|
position = new JSONObject();
|
||||||
|
position.put("X", values[5]);
|
||||||
|
position.put("Y", values[6]);
|
||||||
|
|
||||||
|
resultJson.put("LL", position);
|
||||||
|
|
||||||
|
resultJson.put("PNAME", values[7]);
|
||||||
|
resultJson.put("WATER", values[8]);
|
||||||
|
|
||||||
|
if (values.length == 10) {
|
||||||
|
resultJson.put("PCOM", values[9]);
|
||||||
|
} else {
|
||||||
|
resultJson.put("PCOM", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject generalData = resultJson;
|
||||||
|
generalData.put("HCODE", code);
|
||||||
|
|
||||||
|
List<EgovMap> linkLayerData = mapMainService.getLinkLayerData(params);
|
||||||
|
//generalData.put("LAYER", listmap_to_json_string(linkLayerData));
|
||||||
|
generalData.put("LAYER", linkLayerData);
|
||||||
|
|
||||||
|
List<EgovMap> SPTData = mapMainService.getSPTData(params);
|
||||||
|
//generalData.put("SPT", listmap_to_json_string(SPTData));
|
||||||
|
generalData.put("SPT", SPTData);
|
||||||
|
|
||||||
|
List<EgovMap> sampleData = mapMainService.getSampleData(params);
|
||||||
|
//generalData.put("SAMPLE", listmap_to_json_string(sampleData));
|
||||||
|
generalData.put("SAMPLE", sampleData);
|
||||||
|
|
||||||
|
return generalData;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String listmap_to_json_string(List<EgovMap> list) {
|
||||||
|
JSONArray json_arr = new JSONArray();
|
||||||
|
for (Map<String, Object> map : list) {
|
||||||
|
JSONObject json_obj = new JSONObject();
|
||||||
|
for (Map.Entry<String, Object> entry : map.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
Object value = entry.getValue();
|
||||||
|
json_obj.put(key, value);
|
||||||
|
}
|
||||||
|
json_arr.add(json_obj);
|
||||||
|
}
|
||||||
|
return json_arr.toString();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,4 +54,464 @@
|
||||||
ORDER BY HOL_COD
|
ORDER BY HOL_COD
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectHoleCount" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
COUNT(HOLE_CODE) AS CNT
|
||||||
|
FROM TBL_HEADER
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="areaHcodeArray != null and areaHcodeArray != '' and areaHcodeArray != 'undefiend'">
|
||||||
|
<![CDATA[
|
||||||
|
where NVL(USE_YN,' ') <> 'N' AND HOLE_CODE IN
|
||||||
|
]]>
|
||||||
|
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
|
||||||
|
#{hole}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<![CDATA[
|
||||||
|
WHERE NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
|
||||||
|
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
|
||||||
|
]]>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectHoleList" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
HOLE_CODE
|
||||||
|
FROM TBL_HEADER
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="areaHcodeArray != null and areaHcodeArray != ''and areaHcodeArray != 'undefiend'">
|
||||||
|
<![CDATA[
|
||||||
|
where NVL(USE_YN,' ') <> 'N' AND HOLE_CODE IN
|
||||||
|
]]>
|
||||||
|
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
|
||||||
|
#{hole}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<![CDATA[
|
||||||
|
WHERE NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
|
||||||
|
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
|
||||||
|
]]>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectItems" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
HOLE_CODE,B.PROJECT_NAME,
|
||||||
|
(SELECT USCS_NAME FROM TBL_SCIENCE_LAYER_TB WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
|
||||||
|
A.HOLE_TOTAL_DEPTH DEPTH,A.HOLE_EL EL,A.HOLE_WL WL, A.HOLE_DATE_FROM SDATE, A.HOLE_DATE_TO EDATE
|
||||||
|
FROM
|
||||||
|
TBL_HEADER A, TBL_PROJECT_INFO B
|
||||||
|
WHERE
|
||||||
|
<![CDATA[
|
||||||
|
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
|
||||||
|
]]>
|
||||||
|
A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
AND A.HOLE_CODE IN
|
||||||
|
<foreach collection="holeCode" item="hole" index="index" open="(" close=")" separator=",">
|
||||||
|
#{hole}
|
||||||
|
</foreach>
|
||||||
|
ORDER BY
|
||||||
|
HOLE_CODE
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDistrict" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
'L_DIS' CODE, LD_ID CODE_VALUE, LD_DISTRICTCODE CODE_TEXT, 'L_DIS' PARENT_CODE, LD_ID PARENT_CODE_VALUE
|
||||||
|
FROM TBL_L_DISTRICT
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDistrictSgg" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
'M_DIS' CODE, MD_ID CODE_VALUE, MD_DISTRICTCODE CODE_TEXT, 'L_DIS' PARENT_CODE, MD_LARGEDISTRICTID RARENT_CODE
|
||||||
|
FROM TBL_M_DISTRICT
|
||||||
|
WHERE MD_LARGEDISTRICTID = #{code}
|
||||||
|
ORDER BY CODE_TEXT
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectGrid1" parameterType="map" resultType="EgovMap">
|
||||||
|
SELECT SA.*
|
||||||
|
, (SELECT CRWD_ID FROM S3D_CROWD_ANAL OA WHERE OA.PROJECT_CODE = SA.PROJECT_CODE AND ROWNUM=1) AS CRWD_ID
|
||||||
|
, (SELECT SEPARATOR FROM S3D_CROWD_ANAL OA WHERE OA.PROJECT_CODE = SA.PROJECT_CODE AND ROWNUM=1) AS SEPARATOR
|
||||||
|
, 'fault_model' as FAULT_MODEL
|
||||||
|
, 'spt_model' as SPT_MODEL
|
||||||
|
, 'analysis_model' as ANALYSIS_MODEL
|
||||||
|
, 'layer_model' as LAYER_MODEL
|
||||||
|
, 'gw_model' as GW_MODEL
|
||||||
|
, 'no' as CAD
|
||||||
|
, 'no' as SHAPE
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
A.PROJECT_CODE
|
||||||
|
, replace(replace(A.PROJECT_NAME ,chr(10),' '),chr(13),' ') PROJECT_NAME
|
||||||
|
, COUNT(B.HOLE_CODE) HOLE_CNT
|
||||||
|
FROM
|
||||||
|
TBL_PROJECT_INFO A
|
||||||
|
, TBL_HEADER B
|
||||||
|
WHERE
|
||||||
|
<![CDATA[
|
||||||
|
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
|
||||||
|
]]>
|
||||||
|
A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
<choose>
|
||||||
|
<when test="sido != '' and sido != null">
|
||||||
|
<![CDATA[
|
||||||
|
AND SUBSTR(A.PROJECT_START_SPOT, 1, 3) = #{sido}
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
<when test="gugun != '' and gugun != null">
|
||||||
|
<![CDATA[
|
||||||
|
AND SUBSTR(A.PROJECT_START_SPOT, 1, 6) = #{sido+gugun}
|
||||||
|
]]>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
GROUP
|
||||||
|
BY A.PROJECT_CODE, A.PROJECT_NAME
|
||||||
|
) SA
|
||||||
|
WHERE EXISTS (SELECT 1
|
||||||
|
FROM S3D_CROWD_ANAL S2A
|
||||||
|
WHERE S2A.PROJECT_CODE = SA.PROJECT_CODE)
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectOldItems" parameterType="map" resultType="EgovMap">
|
||||||
|
SELECT
|
||||||
|
C.S3D_DISTRICT_CODE,
|
||||||
|
C.S3D_DISTRICT_NAME,
|
||||||
|
C.S3D_SEQUENCE,
|
||||||
|
C.S3D_PREFIX,
|
||||||
|
B.S3D_DISTRICT_SUB_CODE,
|
||||||
|
B.S3D_DISTRICT_SUB_NAME,
|
||||||
|
A.S3D_REGION_NAME,
|
||||||
|
A.S3D_CODE,
|
||||||
|
A.S3D_MAP_IMAGE
|
||||||
|
FROM
|
||||||
|
S3D_MASTER A,
|
||||||
|
S3D_DISTRICT_SUB B,
|
||||||
|
S3D_DISTRICT C
|
||||||
|
WHERE
|
||||||
|
A.S3D_DISTRICT_SUB = B.S3D_DISTRICT_SUB_CODE
|
||||||
|
AND A.S3D_DISTRICT = C.S3D_DISTRICT_CODE
|
||||||
|
|
||||||
|
<if test="sido != null and sido != '' and sido != 'all'">
|
||||||
|
<![CDATA[
|
||||||
|
AND C.S3D_DISTRICT_CODE = #{sido}
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
<if test="gugun != null and gugun != '' and gugun != 'all'">
|
||||||
|
<![CDATA[
|
||||||
|
AND B.S3D_DISTRICT_SUB_CODE = #{gugun}
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
<if test="dong != null and dong != '' and dong != 'all'">
|
||||||
|
<![CDATA[
|
||||||
|
AND A.S3D_MAP_IMAGE LIKE #{dong} || '%'
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
ORDER BY
|
||||||
|
C.S3D_DISTRICT_CODE, C.S3D_SEQUENCE, B.S3D_DISTRICT_SUB_CODE, A.S3D_CODE
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="get3dSido" parameterType="map" resultType="egovMap">
|
||||||
|
select
|
||||||
|
s3d_district_code, s3d_district_name, s3d_sequence, s3d_prefix
|
||||||
|
from s3d_district
|
||||||
|
where
|
||||||
|
s3d_district_yn = '1'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="get3dGugun" parameterType="map" resultType="egovMap">
|
||||||
|
select s3d_district, s3d_district_sub_name, s3d_district_sub_code from s3d_district_sub
|
||||||
|
where s3d_district = #{doCd}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="get3dDong" parameterType="map" resultType="egovMap">
|
||||||
|
select
|
||||||
|
s3d_region, s3d_link_code, s3d_button_name, s3d_link_address, s3d_link_x, s3d_link_y
|
||||||
|
from
|
||||||
|
s3d_detail
|
||||||
|
where
|
||||||
|
s3d_district = #{sido} and
|
||||||
|
s3d_district_sub = #{gugun}
|
||||||
|
order by
|
||||||
|
s3d_link_code asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="get3dDetail" parameterType="map" resultType="egovMap">
|
||||||
|
select
|
||||||
|
DISTINCT de.s3d_region, de.s3d_link_code, ma.s3d_district, de.s3d_button_name
|
||||||
|
from
|
||||||
|
s3d_detail de, s3d_master ma
|
||||||
|
where
|
||||||
|
de.s3d_district = ma.s3d_district and
|
||||||
|
ma.s3d_map_image = #{adong1} and
|
||||||
|
de.s3d_region= #{aid}
|
||||||
|
order by
|
||||||
|
de.s3d_link_code asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getGeneralData" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
(
|
||||||
|
COALESCE(t_project.project_code, '')
|
||||||
|
|| '|' || COALESCE(t_hole.hole_elevation, '') -- HOLE_ELV -> hole_elevation
|
||||||
|
|| '|' || COALESCE(t_hole.hole_drilling_depth, '') -- 시추심도
|
||||||
|
|| '|' || COALESCE(t_hole.hole_x, '')
|
||||||
|
|| '|' || COALESCE(t_hole.hole_y, '')
|
||||||
|
|| '|' || COALESCE(ST_Y(t_hole.hole_point)::text, '')
|
||||||
|
|| '|' || COALESCE(ST_X(t_hole.hole_point)::text, '')
|
||||||
|
|| '|' || COALESCE(t_business.business_name, '')
|
||||||
|
|| '|' || COALESCE(t_hole.hole_water_level, '') -- HOLE_WL -> hole_water_level
|
||||||
|
|| '|' || COALESCE(t_hole.hole_location_sd, '') || COALESCE(t_hole.hole_location_sgg, '') || COALESCE(t_hole.hole_location_emd, '') || COALESCE(t_hole.hole_location_detail, '')
|
||||||
|
) AS VLU
|
||||||
|
FROM
|
||||||
|
public.apptb_hole01 t_hole
|
||||||
|
LEFT JOIN
|
||||||
|
public.apptb_saup01 t_business ON t_hole.business_code = t_business.business_code
|
||||||
|
LEFT JOIN
|
||||||
|
public.apptb_proj01 t_project ON t_business.project_code = t_project.project_code
|
||||||
|
WHERE
|
||||||
|
t_hole.business_code = #{businessCode}
|
||||||
|
AND t_hole.hole_code = #{holeCode}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getLinkLayerData" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
a1.layer_depth_from AS "FROM",
|
||||||
|
a1.layer_depth_to AS "TO",
|
||||||
|
a1.layer_science_name AS "USCS",
|
||||||
|
COALESCE(a1.layer_eng_name, '') AS "NAME",
|
||||||
|
COALESCE(a1.layer_soil_color, '') AS "COLOR",
|
||||||
|
REPLACE(REPLACE(a1.layer_desc, CHR(10), ' '), CHR(13), ' ') AS "DESC"
|
||||||
|
FROM
|
||||||
|
public.apptb_layr01 a1
|
||||||
|
WHERE
|
||||||
|
a1.business_code = #{businessCode}
|
||||||
|
AND a1.hole_code = #{holeCode}
|
||||||
|
ORDER BY a1.layer_depth_from
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getSPTData" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
depth_spt,
|
||||||
|
spt_n
|
||||||
|
FROM
|
||||||
|
public.apptb_spt01
|
||||||
|
WHERE
|
||||||
|
hole_code = #{holeCode}
|
||||||
|
AND
|
||||||
|
business_code = #{businessCode}
|
||||||
|
ORDER BY
|
||||||
|
depth_spt
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getSampleData" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
(t.CODE || '|' || t.DEPTH_FROM || '|' || t.DEPTH_TO || '|' || t.YN || '|' || t.SHAPE) AS VAL
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
'0' AS CODE,
|
||||||
|
t1.rjoint_depth_from::numeric AS DEPTH_FROM,
|
||||||
|
t1.rjoint_depth_to::numeric AS DEPTH_TO,
|
||||||
|
'0' AS YN,
|
||||||
|
'0' AS SHAPE
|
||||||
|
FROM
|
||||||
|
public.apptb_josh01 t1
|
||||||
|
WHERE
|
||||||
|
t1.hole_code = #{holeCode}
|
||||||
|
AND t1.business_code = #{businessCode}
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
'0' AS CODE,
|
||||||
|
t2.depth_from::numeric AS DEPTH_FROM,
|
||||||
|
t2.depth_to::numeric AS DEPTH_TO,
|
||||||
|
'0' AS YN,
|
||||||
|
'0' AS SHAPE
|
||||||
|
FROM
|
||||||
|
public.apptb_polo01 t2
|
||||||
|
WHERE
|
||||||
|
t2.hole_code = #{holeCode}
|
||||||
|
AND t2.business_code = #{businessCode}
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
'0' AS CODE,
|
||||||
|
t3.rtri_depth_from::numeric AS DEPTH_FROM,
|
||||||
|
t3.rtri_depth_to::numeric AS DEPTH_TO,
|
||||||
|
'0' AS YN,
|
||||||
|
'0' AS SHAPE
|
||||||
|
FROM
|
||||||
|
public.apptb_rtri01 t3
|
||||||
|
WHERE
|
||||||
|
t3.hole_code = #{holeCode}
|
||||||
|
AND t3.business_code = #{businessCode}
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
'0' AS CODE,
|
||||||
|
t4.runi_depth_from::numeric AS DEPTH_FROM,
|
||||||
|
t4.runi_depth_to::numeric AS DEPTH_TO,
|
||||||
|
'0' AS YN,
|
||||||
|
'0' AS SHAPE
|
||||||
|
FROM
|
||||||
|
public.apptb_runi01 t4
|
||||||
|
WHERE
|
||||||
|
t4.hole_code = #{holeCode}
|
||||||
|
AND t4.business_code = #{businessCode}
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
t5.sample_code AS CODE,
|
||||||
|
t5.sample_depth_from::numeric AS DEPTH_FROM,
|
||||||
|
t5.sample_depth_to::numeric AS DEPTH_TO,
|
||||||
|
'0' AS YN,
|
||||||
|
t5.sample_shape AS SHAPE
|
||||||
|
FROM
|
||||||
|
public.apptb_smpl01 t5
|
||||||
|
WHERE
|
||||||
|
t5.hole_code = #{holeCode}
|
||||||
|
AND t5.business_code = #{businessCode}
|
||||||
|
AND (
|
||||||
|
(SELECT COUNT(*) FROM public.apptb_cons02 WHERE sample_code = t5.sample_code) > 0 OR
|
||||||
|
(SELECT COUNT(*) FROM public.apptb_stri01 WHERE sample_code = t5.sample_code) > 0 OR
|
||||||
|
(SELECT COUNT(*) FROM public.apptb_suni01 WHERE sample_code = t5.sample_code) > 0 OR
|
||||||
|
(SELECT COUNT(*) FROM public.apptb_clas01 WHERE sample_code = t5.sample_code) > 0 OR
|
||||||
|
(SELECT COUNT(*) FROM public.apptb_cbr01 WHERE sample_code = t5.sample_code) > 0
|
||||||
|
)
|
||||||
|
) AS t
|
||||||
|
WHERE
|
||||||
|
t.DEPTH_FROM IS NOT NULL
|
||||||
|
AND t.DEPTH_TO IS NOT NULL
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
<select id="selectInfoLastPage" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT CEIL(MAX(ROWNUM)/ 15 ) AS LASTPAGE
|
||||||
|
FROM (
|
||||||
|
SELECT HOLE_CODE,
|
||||||
|
B.PROJECT_NAME,
|
||||||
|
(SELECT USCS_NAME
|
||||||
|
FROM TBL_SCIENCE_LAYER_TB
|
||||||
|
WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
|
||||||
|
A.HOLE_TOTAL_DEPTH DEPTH,
|
||||||
|
A.HOLE_EL EL,
|
||||||
|
A.HOLE_WL WL,
|
||||||
|
A.HOLE_DATE_FROM SDATE,
|
||||||
|
A.HOLE_DATE_TO EDATE
|
||||||
|
FROM
|
||||||
|
TBL_HEADER A,
|
||||||
|
TBL_PROJECT_INFO B
|
||||||
|
WHERE
|
||||||
|
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
|
||||||
|
A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
AND A.HOLE_CODE IN
|
||||||
|
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="areaHcodeArray != null and areaHcodeArray != ''">
|
||||||
|
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
|
||||||
|
#{hole}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<![CDATA[
|
||||||
|
(
|
||||||
|
SELECT TRIM(HOLE_CODE)
|
||||||
|
FROM TBL_HEADER A
|
||||||
|
WHERE NVL(A.USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
|
||||||
|
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
|
||||||
|
)
|
||||||
|
]]>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
<![CDATA[
|
||||||
|
|
||||||
|
ORDER BY HOLE_CODE )
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectInfoItems" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT *
|
||||||
|
FROM (SELECT ROWNUM RNK,
|
||||||
|
Z.*
|
||||||
|
FROM (SELECT HOLE_CODE,
|
||||||
|
B.PROJECT_NAME,
|
||||||
|
B.PROJECT_CODE,
|
||||||
|
(SELECT USCS_NAME
|
||||||
|
FROM TBL_SCIENCE_LAYER_TB
|
||||||
|
WHERE A.LAYER_CLASS_CODE = USCS_CODE) LAYER,
|
||||||
|
A.HOLE_TOTAL_DEPTH DEPTH,
|
||||||
|
A.HOLE_EL EL,
|
||||||
|
A.HOLE_WL WL,
|
||||||
|
A.HOLE_DATE_FROM SDATE,
|
||||||
|
A.HOLE_DATE_TO EDATE
|
||||||
|
FROM TBL_HEADER A,
|
||||||
|
TBL_PROJECT_INFO B
|
||||||
|
WHERE
|
||||||
|
NVL(A.USE_YN,' ') <> 'N' AND NVL(B.USE_YN,' ') <> 'N' AND
|
||||||
|
A.PROJECT_CODE = B.PROJECT_CODE
|
||||||
|
AND A.HOLE_CODE IN
|
||||||
|
]]>
|
||||||
|
<choose>
|
||||||
|
<when test="areaHcodeArray != null and areaHcodeArray != ''">
|
||||||
|
<foreach collection="areaHcodeArray" item="hole" index="index" open="(" close=")" separator=",">
|
||||||
|
#{hole}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
<![CDATA[
|
||||||
|
(
|
||||||
|
SELECT TRIM(HOLE_CODE)
|
||||||
|
FROM
|
||||||
|
TBL_HEADER A
|
||||||
|
WHERE
|
||||||
|
NVL(USE_YN,' ') <> 'N' AND HOLE_LOCATION_TM_X >= #{minX} AND HOLE_LOCATION_TM_X <= #{maxX}
|
||||||
|
AND HOLE_LOCATION_TM_Y >= #{minY} AND HOLE_LOCATION_TM_Y <= #{maxY}
|
||||||
|
)
|
||||||
|
]]>
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
|
||||||
|
|
||||||
|
<![CDATA[
|
||||||
|
ORDER BY HOLE_CODE ) Z )
|
||||||
|
WHERE RNK > #{firstRow} AND RNK <= #{lastRow}
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWebDownloadLog" parameterType="map" resultType="egovMap">
|
||||||
|
<![CDATA[
|
||||||
|
SELECT
|
||||||
|
(sysdate-min(ENDDATE)) as ENDDATE,
|
||||||
|
COUNT(*) AS CNT
|
||||||
|
FROM WEB_DOWNLOAD_LOG
|
||||||
|
WHERE USERID = #{userId}
|
||||||
|
AND DOWNYN IN ('W','N','R')
|
||||||
|
]]>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectProjectList" parameterType="map" resultType="egovMap">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
TBL_PROJECT_INFO
|
||||||
|
WHERE
|
||||||
|
<![CDATA[
|
||||||
|
NVL(USE_YN,' ') <> 'N' AND
|
||||||
|
]]>
|
||||||
|
TRIM(PROJECT_CODE) IN
|
||||||
|
<foreach collection="projectList" item="project" index="index" open="(" close=")" separator=",">
|
||||||
|
#{project}
|
||||||
|
</foreach>
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,358 @@
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<title>스마트지반정보관리 시스템</title>
|
||||||
|
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name = "viewport" content = "user-scalable=no, width=device-width">
|
||||||
|
<meta name="author" content="해양수산부">
|
||||||
|
<!-- description -->
|
||||||
|
<meta name="description" content="스마트지반정보관리">
|
||||||
|
<!-- keywords -->
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<!-- favicon -->
|
||||||
|
<link rel="shortcut icon" href="${pageContext.request.contextPath}/com/img/common/icon/favicon.ico">
|
||||||
|
|
||||||
|
<script src="${pageContext.request.contextPath}/com/plugins/kendo-ui/js/jquery.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="${pageContext.request.contextPath}/com/plugins/bootstrap.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/com/plugins/bootstrap.min.css" />
|
||||||
|
|
||||||
|
<script src="${pageContext.request.contextPath}/com/plugins/css-element-queries/ResizeSensor.js"></script>
|
||||||
|
<script src="${pageContext.request.contextPath}/com/plugins/css-element-queries/ElementQueries.js"></script>
|
||||||
|
|
||||||
|
<script src="${pageContext.request.contextPath}/com/js/app.js"></script>
|
||||||
|
<script src="${pageContext.request.contextPath}/com/js/cross-section.js"></script>
|
||||||
|
|
||||||
|
<!-- 스타일 css -->
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/com/css/style.css" />
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/com/css/common.v2.0.css" />
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/com/css/cross-section.css" />
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/com/plugins/openlayers/theme/default/style.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/com/plugins/proj4js/proj4js-compressed.js"></script>
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/com/plugins/openlayers/OpenLayers.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/com/js/map/sichudan/js/json2.js"></script>
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/com/js/map/main/section.js" charset="UTF-8"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// --------------------------------
|
||||||
|
// 시스템 변수
|
||||||
|
// --------------------------------
|
||||||
|
var geoSection = null;
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
// 어플리케이션 로딩
|
||||||
|
// --------------------------------
|
||||||
|
addLoadEvent(initApp);
|
||||||
|
function initApp() {
|
||||||
|
|
||||||
|
showProgress();
|
||||||
|
|
||||||
|
if (geoSection == null) {
|
||||||
|
geoSection = new GeoSection("map");
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = "${data}";
|
||||||
|
geoSection.show(data);
|
||||||
|
|
||||||
|
hideProgress();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
// 함수 : 지반 단면도 보기 이벤트 컨트롤
|
||||||
|
// --------------------------------
|
||||||
|
var isShowAltitude = false;
|
||||||
|
var isShowDistance = false;
|
||||||
|
var isShowSPT = false;
|
||||||
|
var isShowLink = false;
|
||||||
|
var isShowWater = false;
|
||||||
|
function zoomToExtent() {
|
||||||
|
geoSection.zoomToExtent();
|
||||||
|
}
|
||||||
|
function zoomIn() {
|
||||||
|
geoSection.zoomIn();
|
||||||
|
}
|
||||||
|
function zoomOut() {
|
||||||
|
geoSection.zoomOut();
|
||||||
|
}
|
||||||
|
function toggleAltitude() {
|
||||||
|
if (isShowAltitude) {
|
||||||
|
isShowAltitude = false;
|
||||||
|
geoSection.hideHoleAltitude();
|
||||||
|
} else {
|
||||||
|
isShowAltitude = true;
|
||||||
|
geoSection.showHoleAltitude();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toggleDistance() {
|
||||||
|
if (isShowDistance) {
|
||||||
|
isShowDistance = false;
|
||||||
|
geoSection.hideHoleDistance();
|
||||||
|
} else {
|
||||||
|
isShowDistance = true;
|
||||||
|
geoSection.showHoleDistance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toggleSPT() {
|
||||||
|
if (isShowSPT) {
|
||||||
|
isShowSPT = false;
|
||||||
|
geoSection.hideHoleSPT();
|
||||||
|
} else {
|
||||||
|
isShowSPT = true;
|
||||||
|
geoSection.showHoleSPT();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toggleLink() {
|
||||||
|
if (isShowLink) {
|
||||||
|
isShowLink = false;
|
||||||
|
geoSection.hideHoleLink();
|
||||||
|
} else {
|
||||||
|
isShowLink = true;
|
||||||
|
geoSection.showHoleLink();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function toggleWater() {
|
||||||
|
if (isShowWater) {
|
||||||
|
isShowWater = false;
|
||||||
|
geoSection.hideHoleWater();
|
||||||
|
} else {
|
||||||
|
isShowWater = true;
|
||||||
|
geoSection.showHoleWater();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
// 함수 : Process 패널 보이기 & 숨기기
|
||||||
|
// --------------------------------
|
||||||
|
var proWin = null;
|
||||||
|
function showProgress() {
|
||||||
|
var over = document.getElementById("over");
|
||||||
|
if (over != null) {
|
||||||
|
over.style.display = "block";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hideProgress() {
|
||||||
|
var over = document.getElementById("over");
|
||||||
|
if (over != null) {
|
||||||
|
over.style.display = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body class="map-service cross-section">
|
||||||
|
|
||||||
|
<!-- 페이지 컨테이너 시작 -->
|
||||||
|
<section class="page-container">
|
||||||
|
|
||||||
|
<div class="page-content-wrapper">
|
||||||
|
|
||||||
|
<!-- 컨텐츠 시작 -->
|
||||||
|
<div class="page-content">
|
||||||
|
|
||||||
|
<div class="page-content-inner">
|
||||||
|
|
||||||
|
<div class="page-title-wrapper">
|
||||||
|
<h1 class="cross-section-title"><span>지반 단면도</span></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="cross-section-wrapper">
|
||||||
|
<div class="cross-contents-panel">
|
||||||
|
<!-- <div id="map" class="cross-contents-map" style="background-color: white; border: 1px solid black; padding: 0px;">
|
||||||
|
</div>
|
||||||
|
<div id="over" align="center" style="position: absolute; top: 120px; left: 400px; width: 751px; height: 517px;">
|
||||||
|
<img src="/com/img/map-service/sichudan/loading.gif" style="position: relative; top: 130px;">
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div id="map" style="width: 100%; height: calc(100vh - 296px); background-color: white; border: 1px solid black; padding: 0px;"></div>
|
||||||
|
<div id="over" align="center" style="position: absolute; top: calc(100vh - 85%); left: auto; width: 100%; height: calc(100vh - 296px);">
|
||||||
|
<img src="/com/img/map-service/sichudan/loading.gif" style="position: relative; top: auto;">
|
||||||
|
</div>
|
||||||
|
<div class="cross-contents-option">
|
||||||
|
<div class="cross-option-box">
|
||||||
|
<div class="cross-option-col cross-option-ex">
|
||||||
|
<ul>
|
||||||
|
<li class="option-mouse"><span class="option-title">이동</span>마우스 왼쪽 드래그, <span class="option-title">확대</span>L-Shift + 마우스 왼쪽 드래그</li>
|
||||||
|
<li class="option-ex ex-sample">시료를 채취한 부분으로 실내시험 결과를 확인 할 수 있습니다.</li>
|
||||||
|
<li class="option-ex ex-jusang">지반주상도 정보를 확인 하실 수 있습니다.</li>
|
||||||
|
<li class="option-ex ex-info">지반단면도에 대한 XML 데이터를 보실 수 있습니다.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="cross-option-col cross-btn-group">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-ske-blue btn-icon-left btn-icon-zoom-all" onclick="zoomToExtent();" onfocus="this.blur();"><span>전체</span></button>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-ske-blue btn-icon-left btn-icon-zoom-plus" onclick="zoomIn();" onfocus="this.blur();"><span>확대</span></button>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-ske-blue btn-icon-left btn-icon-zoom-minus" onclick="zoomOut();" onfocus="this.blur();"><span>축소</span></button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-dark-gray btn-icon-left btn-icon-nextB" onclick="toggleAltitude();" onfocus="this.blur();"><span>표고정보보기</span></button>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-dark-gray btn-icon-left btn-icon-nextB" onclick="toggleDistance();" onfocus="this.blur();"><span>시추공사이거리보기</span></button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-dark-gray btn-icon-left btn-icon-nextB" onclick="toggleSPT();" onfocus="this.blur();"><span>SPT보기</span></button>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-dark-gray btn-icon-left btn-icon-nextB" onclick="toggleLink();" onfocus="this.blur();"><span>지층연결</span></button>
|
||||||
|
<button type="button" class="btn btn-small btn-rounded5 btn-dark-gray btn-icon-left btn-icon-nextB" onclick="toggleWater();" onfocus="this.blur();"><span>지하수위보기</span></button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cross-legend-panel">
|
||||||
|
<h2 class="page-title-1depth"><span>지층 색상표</span></h2>
|
||||||
|
|
||||||
|
<div class="table-scrollable color-palette">
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:40px;">
|
||||||
|
<col style="width:60px;">
|
||||||
|
<col style="width:40px;">
|
||||||
|
<col style="width:auto;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<th>색상</th>
|
||||||
|
<th>USCS분류</th>
|
||||||
|
<th colspan="2">지층명</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr class="palette-tr-g">
|
||||||
|
<td rowspan="4" class="palette-td-g"></td>
|
||||||
|
<td>GW</td>
|
||||||
|
<td rowspan="4">자갈</td>
|
||||||
|
<td class="t-left">입도 좋은 자갈</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-g">
|
||||||
|
<td>GP</td>
|
||||||
|
<td class="t-left">입도 나쁜 자갈</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-g">
|
||||||
|
<td>GM</td>
|
||||||
|
<td class="t-left">실트질 자갈</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-g">
|
||||||
|
<td>GC</td>
|
||||||
|
<td class="t-left">점토질 자갈</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-s">
|
||||||
|
<td rowspan="4" class="palette-td-s"></td>
|
||||||
|
<td>SW</td>
|
||||||
|
<td rowspan="4">모래</td>
|
||||||
|
<td class="t-left">입도 좋은 모래</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-s">
|
||||||
|
<td>SP</td>
|
||||||
|
<td class="t-left">입도 나쁜 모래</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-s">
|
||||||
|
<td>SM</td>
|
||||||
|
<td class="t-left">실트질 모래</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-s">
|
||||||
|
<td>SC</td>
|
||||||
|
<td class="t-left">점토질 모래</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-mc">
|
||||||
|
<td rowspan="4" class="palette-td-mc"></td>
|
||||||
|
<td>ML</td>
|
||||||
|
<td rowspan="2">실트</td>
|
||||||
|
<td class="t-left">무기질 실트, 극세사</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-mc">
|
||||||
|
<td>MH</td>
|
||||||
|
<td class="t-left">무기질 실트</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-mc">
|
||||||
|
<td>CL</td>
|
||||||
|
<td rowspan="2">점토</td>
|
||||||
|
<td class="t-left">무기질, 자갈질 점토</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-mc">
|
||||||
|
<td>CH</td>
|
||||||
|
<td class="t-left">고소성 무기질 점토</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-op">
|
||||||
|
<td rowspan="3" class="palette-td-op"></td>
|
||||||
|
<td>OH</td>
|
||||||
|
<td colspan="2" class="t-left">중소성 유기질 점토</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-op">
|
||||||
|
<td>OL</td>
|
||||||
|
<td colspan="2" class="t-left">유기질 실트</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="palette-tr-op">
|
||||||
|
<td>PT</td>
|
||||||
|
<td colspan="2" class="t-left">이탄 및 고유기질토</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-wr">
|
||||||
|
<td class="palette-td-wr"></td>
|
||||||
|
<td>WR</td>
|
||||||
|
<td colspan="2" class="t-left">풍화암</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-sr">
|
||||||
|
<td class="palette-td-sr"></td>
|
||||||
|
<td>SR</td>
|
||||||
|
<td colspan="2" class="t-left">연암</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-mr">
|
||||||
|
<td class="palette-td-mr"></td>
|
||||||
|
<td>MR</td>
|
||||||
|
<td colspan="2" class="t-left">보통암</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-hr">
|
||||||
|
<td class="palette-td-hr"></td>
|
||||||
|
<td>HR</td>
|
||||||
|
<td colspan="2" class="t-left">경암</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-xr">
|
||||||
|
<td class="palette-td-xr"></td>
|
||||||
|
<td>XR</td>
|
||||||
|
<td colspan="2" class="t-left">극경암</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="palette-tr-et">
|
||||||
|
<td class="palette-td-et"></td>
|
||||||
|
<td>ET</td>
|
||||||
|
<td colspan="2" class="t-left">기타</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- 컨텐츠 끝 -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<!-- 페이지 컨테이너 끝 -->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -181,7 +181,7 @@
|
||||||
}
|
}
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$("#projectStartDate").kendoDatePicker({
|
$("#projectStartDate").kendoDatePicker({
|
||||||
value : new Date(),
|
value : new Date("1990-01-01T00:00:00.000+09:00"),
|
||||||
culture: "ko-KR",
|
culture: "ko-KR",
|
||||||
format : "yyyy-MM-dd"
|
format : "yyyy-MM-dd"
|
||||||
});
|
});
|
||||||
|
|
@ -256,7 +256,7 @@
|
||||||
var business_process_data = ${codeJson_business_process_code}; // 사업 공정 코드
|
var business_process_data = ${codeJson_business_process_code}; // 사업 공정 코드
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$("#inputYmdTo").kendoDatePicker({
|
$("#inputYmdTo").kendoDatePicker({
|
||||||
value : new Date(),
|
value : new Date("1990-01-01T00:00:00.000+09:00"),
|
||||||
culture: "ko-KR",
|
culture: "ko-KR",
|
||||||
format : "yyyy-MM-dd"
|
format : "yyyy-MM-dd"
|
||||||
});
|
});
|
||||||
|
|
@ -368,17 +368,34 @@
|
||||||
<input type="radio" name="sichuSelect" id="polygon" autocomplete="off" onchange="changeInteraction('areaClick');" > 영역선택
|
<input type="radio" name="sichuSelect" id="polygon" autocomplete="off" onchange="changeInteraction('areaClick');" > 영역선택
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li style="width: 400px;">
|
<li style="width: 400px;">
|
||||||
<button type="button" id="searchInfo" class="btn btn-ske-blue btn-icon-left btn-icon-search" ><span>정보조회</span></button>
|
<button type="button" id="searchInfo" class="btn btn-ske-blue btn-icon-left btn-icon-search" ><span>정보조회</span></button>
|
||||||
<a href="javascript:void(0);" id="mapDemSearch" class="btn btn-single-toggle" data-toggle="button" aria-pressed="false" autocomplete="off" ><span>DEM 시계열 조회</span></a>
|
<a href="javascript:void(0);" id="mapDemSearch" class="btn btn-single-toggle" data-toggle="button" aria-pressed="false" autocomplete="off" ><span>DEM 시계열 조회</span></a>
|
||||||
<script>
|
<script>
|
||||||
$('#mapDemSearch').click(function(){
|
$('#mapDemSearch').click(function(){
|
||||||
$(".calendar-group").toggleClass('active');
|
$(".calendar-group").toggleClass('active');
|
||||||
$(".map-bottom-control-wrapper").toggleClass('active');
|
$(".map-bottom-control-wrapper").toggleClass('active');
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</li>
|
</li>
|
||||||
|
<li style="width: 400px;">
|
||||||
|
<a href="javascript:showSichudan();" id="borehole-profile" class="btn btn-ske-blue btn-icon-left btn-icon-search" autocomplete="off" ><span>지반단면도</span></a>
|
||||||
|
<a href="javascript:showSichudan();" id="borehole-log" class="btn btn-ske-blue btn-icon-left btn-icon-search" autocomplete="off" ><span>지반주상도</span></a>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
function showSichudan() {
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
if (codes == "") {
|
||||||
|
alert("시추공을 선택해주세요.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sichuWin = window.open("/map/sichudanNew.do?code=" + codes, "sichuWin", "scrollbars=no,titlebar=no,width=1024,height=740,left=0,top=0", true);
|
||||||
|
sichuWin.focus();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="form-inline calendar-group">
|
<div class="form-inline calendar-group">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
|
|
|
||||||
|
|
@ -330,7 +330,7 @@
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$("#inputYmdTo").kendoDatePicker({
|
$("#inputYmdTo").kendoDatePicker({
|
||||||
value : new Date(),
|
value : new Date("1990-01-01T00:00:00.000+09:00"),
|
||||||
culture: "ko-KR",
|
culture: "ko-KR",
|
||||||
format : "yyyy-MM-dd"
|
format : "yyyy-MM-dd"
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 791 B |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -0,0 +1,86 @@
|
||||||
|
/* ----------------------------------
|
||||||
|
|
||||||
|
Name : cross-section.js
|
||||||
|
Categorie : 스마트 지반정보 관리시스템
|
||||||
|
Author : 이상혁
|
||||||
|
Version : v.1.0
|
||||||
|
Created : 2022-03-28
|
||||||
|
Last update : 2022-03-28
|
||||||
|
|
||||||
|
-------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*==============================================================*/
|
||||||
|
// 메뉴 사이즈 및 포지션 체크 시작
|
||||||
|
/*==============================================================*/
|
||||||
|
|
||||||
|
// 메뉴 & 컨텐츠 높이값
|
||||||
|
function setSidebarAndContentHeight() {
|
||||||
|
|
||||||
|
var body = $('html');
|
||||||
|
|
||||||
|
var crossContentsPanel = $('.cross-contents-panel');
|
||||||
|
var crossContentsMap = $('.cross-contents-map');
|
||||||
|
|
||||||
|
var pageTitleWrapperHeight = $('.page-title-wrapper').outerHeight();
|
||||||
|
|
||||||
|
var contentHeight = $('.page-content-inner').height();
|
||||||
|
var crossContentsPanelHeight = $('.cross-contents-panel').height();
|
||||||
|
var crossContentsOptionHeight = $('.cross-contents-option').outerHeight();
|
||||||
|
|
||||||
|
var viewPortHeight = App.getViewPort().height;
|
||||||
|
|
||||||
|
var crossSectionWrapperHeight = contentHeight - pageTitleWrapperHeight;
|
||||||
|
var crossContentsMapHeight = crossContentsPanelHeight - crossContentsOptionHeight;
|
||||||
|
|
||||||
|
crossContentsPanel.css('height', crossSectionWrapperHeight);
|
||||||
|
crossContentsMap.css('height', crossContentsMapHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*==============================================================*/
|
||||||
|
// 메뉴 사이즈 및 포지션 체크 끝
|
||||||
|
/*==============================================================*/
|
||||||
|
|
||||||
|
/*==============================================================*/
|
||||||
|
// RESIZE 될때마다 함수적용 시작
|
||||||
|
/*==============================================================*/
|
||||||
|
function setResizeContent() {
|
||||||
|
setSidebarAndContentHeight();
|
||||||
|
}
|
||||||
|
/*==============================================================*/
|
||||||
|
// RESIZE 될때마다 함수적용 시작
|
||||||
|
/*==============================================================*/
|
||||||
|
|
||||||
|
/*==============================================================*/
|
||||||
|
// RESIZE 시작
|
||||||
|
/*==============================================================*/
|
||||||
|
$(window).resize(function (event) {
|
||||||
|
setTimeout(function () {
|
||||||
|
setResizeContent();
|
||||||
|
}, 0);
|
||||||
|
event.preventDefault();
|
||||||
|
});
|
||||||
|
/*==============================================================*/
|
||||||
|
// RESIZE 끝
|
||||||
|
/*==============================================================*/
|
||||||
|
|
||||||
|
/*==============================================================*/
|
||||||
|
// READY 시작
|
||||||
|
/*==============================================================*/
|
||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
setResizeContent();
|
||||||
|
|
||||||
|
// 컨텐츠 div 크기 변경 감지 https://marcj.github.io/css-element-queries/
|
||||||
|
new ResizeSensor(jQuery('.page-content-inner'), function(){
|
||||||
|
setSidebarAndContentHeight();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
/*==============================================================*/
|
||||||
|
// READY 끝
|
||||||
|
/*==============================================================*/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -56,7 +56,8 @@ var instrumentationGraphInfoPopupData;
|
||||||
var predictionGraphInfoPopup;
|
var predictionGraphInfoPopup;
|
||||||
var predictionGraphInfoPopupData;
|
var predictionGraphInfoPopupData;
|
||||||
//var url = 'http://210.120.6.116:9999';
|
//var url = 'http://210.120.6.116:9999';
|
||||||
var GEOSERVER_URL = 'https://geoserver.smart.dbnt.co.kr';
|
//var GEOSERVER_URL = 'https://geoserver.smart.dbnt.co.kr';
|
||||||
|
var GEOSERVER_URL = 'http://localhost:9000';
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
// 지도 서비스 실행
|
// 지도 서비스 실행
|
||||||
|
|
@ -1210,6 +1211,7 @@ function addInteraction2(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectFeatureInfo(){
|
function selectFeatureInfo(){
|
||||||
|
debugger; //thkim
|
||||||
var businessCode = document.mapForm.businessCode.value;
|
var businessCode = document.mapForm.businessCode.value;
|
||||||
var holeCode = document.mapForm.holeCode.value;
|
var holeCode = document.mapForm.holeCode.value;
|
||||||
var consCode = document.mapForm.consCode.value;
|
var consCode = document.mapForm.consCode.value;
|
||||||
|
|
@ -3815,4 +3817,36 @@ function makePredictionData(){
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function getSelectHoleInfo() {
|
||||||
|
var businessCode = document.mapForm.businessCode.value;
|
||||||
|
var holeCode = document.mapForm.holeCode.value;
|
||||||
|
var consCode = document.mapForm.consCode.value;
|
||||||
|
var searchType = document.mapForm.searchType.value;
|
||||||
|
var surSetCode = document.mapForm.surSetCode.value;
|
||||||
|
var verIncCode = document.mapForm.verIncCode.value;
|
||||||
|
var setExtCode = document.mapForm.setExtCode.value;
|
||||||
|
var watPreCode = document.mapForm.watPreCode.value;
|
||||||
|
var watLevCode = document.mapForm.watLevCode.value;
|
||||||
|
var resultData;
|
||||||
|
var resultArea = [];
|
||||||
|
var data = "";
|
||||||
|
|
||||||
|
|
||||||
|
if(document.mapForm.searchType.value == "EachSelect"){
|
||||||
|
data = businessCode + "%7C%7C" + holeCode;
|
||||||
|
} else {
|
||||||
|
resultData = selectFeatures.getArray();
|
||||||
|
for(var i =0; i<selectFeatures.getLength(); i++){
|
||||||
|
if( i !== 0 ) {
|
||||||
|
data += ",";
|
||||||
|
}
|
||||||
|
data += resultData[i].A.business_code + "%7C%7C" + resultData[i].A.hole_code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,347 @@
|
||||||
|
/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
|
||||||
|
* full list of contributors). Published under the 2-clause BSD license.
|
||||||
|
* See license.txt in the OpenLayers distribution or repository for the
|
||||||
|
* full text of the license. */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @requires OpenLayers/Control.js
|
||||||
|
* @requires OpenLayers/Feature/Vector.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class: OpenLayers.Control.DrawFeature
|
||||||
|
* The DrawFeature control draws point, line or polygon features on a vector
|
||||||
|
* layer when active.
|
||||||
|
*
|
||||||
|
* Inherits from:
|
||||||
|
* - <OpenLayers.Control>
|
||||||
|
*/
|
||||||
|
OpenLayers.Control.DrawFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: layer
|
||||||
|
* {<OpenLayers.Layer.Vector>}
|
||||||
|
*/
|
||||||
|
layer: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: callbacks
|
||||||
|
* {Object} The functions that are sent to the handler for callback
|
||||||
|
*/
|
||||||
|
callbacks: null,
|
||||||
|
/**
|
||||||
|
* APIProperty: events
|
||||||
|
* {<OpenLayers.Events>} Events instance for listeners and triggering
|
||||||
|
* control specific events.
|
||||||
|
*
|
||||||
|
* Register a listener for a particular event with the following syntax:
|
||||||
|
* (code)
|
||||||
|
* control.events.register(type, obj, listener);
|
||||||
|
* (end)
|
||||||
|
*
|
||||||
|
* Supported event types (in addition to those from <OpenLayers.Control.events>):
|
||||||
|
* featureadded - Triggered when a feature is added
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: multi
|
||||||
|
* {Boolean} Cast features to multi-part geometries before passing to the
|
||||||
|
* layer. Default is false.
|
||||||
|
*/
|
||||||
|
multi: false,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: featureAdded
|
||||||
|
* {Function} Called after each feature is added
|
||||||
|
*/
|
||||||
|
second : false,
|
||||||
|
featureAdded: function() {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: handlerOptions
|
||||||
|
* {Object} Used to set non-default properties on the control's handler
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor: OpenLayers.Control.DrawFeature
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* layer - {<OpenLayers.Layer.Vector>}
|
||||||
|
* handler - {<OpenLayers.Handler>}
|
||||||
|
* options - {Object}
|
||||||
|
*/
|
||||||
|
/* initialize: function(layer, handler, options) {
|
||||||
|
console.log("원테스트..111");
|
||||||
|
OpenLayers.Control.prototype.initialize.apply(this, [options]);
|
||||||
|
this.callbacks = OpenLayers.Util.extend(
|
||||||
|
{
|
||||||
|
done: this.drawFeature,
|
||||||
|
modify: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchmodified", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
create: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchstarted", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
this.callbacks
|
||||||
|
);
|
||||||
|
this.layer = layer;
|
||||||
|
this.handlerOptions = this.handlerOptions || {};
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions, {
|
||||||
|
renderers: layer.renderers, rendererOptions: layer.rendererOptions
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (!("multi" in this.handlerOptions)) {
|
||||||
|
this.handlerOptions.multi = this.multi;
|
||||||
|
}
|
||||||
|
var sketchStyle = this.layer.styleMap && this.layer.styleMap.styles.temporary;
|
||||||
|
if(sketchStyle) {
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions,
|
||||||
|
{styleMap: new OpenLayers.StyleMap({"default": sketchStyle})}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.handler = new handler(this, this.callbacks, this.handlerOptions);
|
||||||
|
},*/
|
||||||
|
/**
|
||||||
|
* Constructor: OpenLayers.Control.DrawFeature
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* layer - {<OpenLayers.Layer.Vector>}
|
||||||
|
* handler - {<OpenLayers.Handler>}
|
||||||
|
* options - {Object}
|
||||||
|
*/
|
||||||
|
initialize: function(layer, handler, options, second) {
|
||||||
|
if(second){
|
||||||
|
this.seconde = second;
|
||||||
|
OpenLayers.Control.prototype.initialize.apply(this, [options]);
|
||||||
|
this.callbacks = OpenLayers.Util.extend(
|
||||||
|
{
|
||||||
|
done: this.drawFeature,
|
||||||
|
modify: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchmodified", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
create: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchstarted", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
this.callbacks
|
||||||
|
);
|
||||||
|
this.layer = layer;
|
||||||
|
this.handlerOptions = this.handlerOptions || {};
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions, {
|
||||||
|
renderers: layer.renderers, rendererOptions: layer.rendererOptions
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (!("multi" in this.handlerOptions)) {
|
||||||
|
this.handlerOptions.multi = this.multi;
|
||||||
|
}
|
||||||
|
var sketchStyle = this.layer.styleMap && this.layer.styleMap.styles.temporary;
|
||||||
|
if(sketchStyle) {
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions,
|
||||||
|
{styleMap: new OpenLayers.StyleMap({"default": sketchStyle})}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.handler = new handler(this, this.callbacks, this.handlerOptions);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
OpenLayers.Control.prototype.initialize.apply(this, [options]);
|
||||||
|
this.callbacks = OpenLayers.Util.extend(
|
||||||
|
{
|
||||||
|
done: this.drawFeature,
|
||||||
|
modify: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchmodified", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
create: function(vertex, feature) {
|
||||||
|
this.layer.events.triggerEvent(
|
||||||
|
"sketchstarted", {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
this.callbacks
|
||||||
|
);
|
||||||
|
this.layer = layer;
|
||||||
|
this.handlerOptions = this.handlerOptions || {};
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions, {
|
||||||
|
renderers: layer.renderers, rendererOptions: layer.rendererOptions
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (!("multi" in this.handlerOptions)) {
|
||||||
|
this.handlerOptions.multi = this.multi;
|
||||||
|
}
|
||||||
|
var sketchStyle = this.layer.styleMap && this.layer.styleMap.styles.temporary;
|
||||||
|
if(sketchStyle) {
|
||||||
|
this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
this.handlerOptions.layerOptions,
|
||||||
|
{styleMap: new OpenLayers.StyleMap({"default": sketchStyle})}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.handler = new handler(this, this.callbacks, this.handlerOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: drawFeature
|
||||||
|
*/
|
||||||
|
drawFeature: function(geometry) {
|
||||||
|
var feature = new OpenLayers.Feature.Vector(geometry);
|
||||||
|
var proceed = this.layer.events.triggerEvent(
|
||||||
|
"sketchcomplete", {feature: feature}
|
||||||
|
);
|
||||||
|
if(proceed !== false) {
|
||||||
|
feature.state = OpenLayers.State.INSERT;
|
||||||
|
this.layer.addFeatures([feature]);
|
||||||
|
this.featureAdded(feature);
|
||||||
|
this.events.triggerEvent("featureadded",{feature : feature});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Method: drawFeature
|
||||||
|
*/
|
||||||
|
drawFeature2: function(evt,size) {
|
||||||
|
this.handler.activate();
|
||||||
|
this.handler.fixedRadius = !!(this.handler.radius);
|
||||||
|
var maploc = this.handler.layer.getLonLatFromViewPortPx(evt.xy);
|
||||||
|
this.handler.origin = new OpenLayers.Geometry.Point(maploc.lon, maploc.lat);
|
||||||
|
// create the new polygon
|
||||||
|
if(!this.handler.fixedRadius || this.handler.irregular) {
|
||||||
|
// smallest radius should not be less one pixel in map units
|
||||||
|
// VML doesn't behave well with smaller
|
||||||
|
this.handler.radius = this.handler.map.getResolution();
|
||||||
|
}
|
||||||
|
if(this.handler.persist) {
|
||||||
|
this.handler.clear();
|
||||||
|
}
|
||||||
|
this.handler.clear();
|
||||||
|
this.handler.feature = new OpenLayers.Feature.Vector();
|
||||||
|
this.handler.radius = size;
|
||||||
|
|
||||||
|
this.handler.createGeometry();
|
||||||
|
this.handler.callback("create", [this.handler.origin, this.handler.feature]);
|
||||||
|
this.handler.layer.addFeatures([this.handler.feature], {silent: true});
|
||||||
|
this.handler.layer.drawFeature(this.handler.feature, this.handler.style);
|
||||||
|
|
||||||
|
|
||||||
|
},drawFeatureSize : function(size){
|
||||||
|
this.handler.radius = size;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: insertXY
|
||||||
|
* Insert a point in the current sketch given x & y coordinates.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* x - {Number} The x-coordinate of the point.
|
||||||
|
* y - {Number} The y-coordinate of the point.
|
||||||
|
*/
|
||||||
|
insertXY: function(x, y) {
|
||||||
|
if (this.handler && this.handler.line) {
|
||||||
|
this.handler.insertXY(x, y);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: insertDeltaXY
|
||||||
|
* Insert a point given offsets from the previously inserted point.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* dx - {Number} The x-coordinate offset of the point.
|
||||||
|
* dy - {Number} The y-coordinate offset of the point.
|
||||||
|
*/
|
||||||
|
insertDeltaXY: function(dx, dy) {
|
||||||
|
if (this.handler && this.handler.line) {
|
||||||
|
this.handler.insertDeltaXY(dx, dy);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: insertDirectionLength
|
||||||
|
* Insert a point in the current sketch given a direction and a length.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* direction - {Number} Degrees clockwise from the positive x-axis.
|
||||||
|
* length - {Number} Distance from the previously drawn point.
|
||||||
|
*/
|
||||||
|
insertDirectionLength: function(direction, length) {
|
||||||
|
if (this.handler && this.handler.line) {
|
||||||
|
this.handler.insertDirectionLength(direction, length);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: insertDeflectionLength
|
||||||
|
* Insert a point in the current sketch given a deflection and a length.
|
||||||
|
* The deflection should be degrees clockwise from the previously
|
||||||
|
* digitized segment.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* deflection - {Number} Degrees clockwise from the previous segment.
|
||||||
|
* length - {Number} Distance from the previously drawn point.
|
||||||
|
*/
|
||||||
|
insertDeflectionLength: function(deflection, length) {
|
||||||
|
if (this.handler && this.handler.line) {
|
||||||
|
this.handler.insertDeflectionLength(deflection, length);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: undo
|
||||||
|
* Remove the most recently added point in the current sketch geometry.
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* {Boolean} An edit was undone.
|
||||||
|
*/
|
||||||
|
undo: function() {
|
||||||
|
return this.handler.undo && this.handler.undo();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: redo
|
||||||
|
* Reinsert the most recently removed point resulting from an <undo> call.
|
||||||
|
* The undo stack is deleted whenever a point is added by other means.
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* {Boolean} An edit was redone.
|
||||||
|
*/
|
||||||
|
redo: function() {
|
||||||
|
return this.handler.redo && this.handler.redo();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: finishSketch
|
||||||
|
* Finishes the sketch without including the currently drawn point.
|
||||||
|
* This method can be called to terminate drawing programmatically
|
||||||
|
* instead of waiting for the user to end the sketch.
|
||||||
|
*/
|
||||||
|
finishSketch: function() {
|
||||||
|
this.handler.finishGeometry();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: cancel
|
||||||
|
* Cancel the current sketch. This removes the current sketch and keeps
|
||||||
|
* the drawing control active.
|
||||||
|
*/
|
||||||
|
cancel: function() {
|
||||||
|
this.handler.cancel();
|
||||||
|
},
|
||||||
|
|
||||||
|
CLASS_NAME: "OpenLayers.Control.DrawFeature"
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,892 @@
|
||||||
|
/* Copyright 2011-2015 Xavier Mamano, http://github.com/jorix/OL-DynamicMeasure
|
||||||
|
* Published under MIT license. */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @requires OpenLayers/Control/Measure.js
|
||||||
|
* @requires OpenLayers/Rule.js
|
||||||
|
* @requires OpenLayers/StyleMap.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class: OpenLayers.Control.DynamicMeasure
|
||||||
|
* Allows for drawing of features for measurements.
|
||||||
|
*
|
||||||
|
* Inherits from:
|
||||||
|
* - <OpenLayers.Control.Measure>
|
||||||
|
*/
|
||||||
|
OpenLayers.Control.DynamicMeasure = OpenLayers.Class(
|
||||||
|
OpenLayers.Control.Measure, {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: accuracy
|
||||||
|
* {Integer} Digits measurement accuracy, default is 5.
|
||||||
|
*/
|
||||||
|
accuracy: 5,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: persist
|
||||||
|
* {Boolean} Keep the temporary measurement after the
|
||||||
|
* measurement is complete. The measurement will persist until a new
|
||||||
|
* measurement is started, the control is deactivated, or <cancel> is
|
||||||
|
* called. Default is true.
|
||||||
|
*/
|
||||||
|
persist: true,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: styles
|
||||||
|
* {Object} Alterations of the default styles of the points lines poligons
|
||||||
|
* and labels text, could use keys: "Point", "Line",
|
||||||
|
* "Polygon", "labelSegments", "labelHeading", "labelLength" and
|
||||||
|
* "labelArea". Default is <OpenLayers.Control.DynamicMeasure.styles>.
|
||||||
|
*/
|
||||||
|
styles: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: positions
|
||||||
|
* {Object} Alterations of the default position of the labels, could use
|
||||||
|
* keys: "labelSegments" & "labelHeading", with values "start" "middle"
|
||||||
|
* and "end" refered of the current segment; and keys: "labelLength" &
|
||||||
|
* "labelArea" with additional values "center" (of the feature) and
|
||||||
|
* "initial" (initial point of the feature) and also mentioned previus
|
||||||
|
* values. Default is
|
||||||
|
* <OpenLayers.Control.DynamicMeasure.positions>.
|
||||||
|
*/
|
||||||
|
positions: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: maxSegments
|
||||||
|
* {Integer|Null} Maximum number of visible segments measures, default is 1.
|
||||||
|
*
|
||||||
|
* To avoid soiling the track is desirable to reduce the number of visible
|
||||||
|
* segments.
|
||||||
|
*/
|
||||||
|
maxSegments: 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: maxHeadings
|
||||||
|
* {Integer|Null} Maximum number of visible headings measures, default is 1.
|
||||||
|
*
|
||||||
|
* To avoid soiling the track is desirable to reduce the number of visible
|
||||||
|
* segments.
|
||||||
|
*/
|
||||||
|
maxHeadings: 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: layerSegmentsOptions
|
||||||
|
* {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerSegments> of the lengths of the segments. If set to
|
||||||
|
* null the layer does not act.
|
||||||
|
*
|
||||||
|
* If `styleMap` options is set then the key "labelSegments" of the
|
||||||
|
* `styles` option is ignored.
|
||||||
|
*/
|
||||||
|
layerSegmentsOptions: undefined,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: layerHeadingOptions
|
||||||
|
* {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerHeading> of the angle of the segments. If set to
|
||||||
|
* null the layer does not act. Default is null, set to {} to use a
|
||||||
|
* <layerHeading> to show headings.
|
||||||
|
*
|
||||||
|
* If `styleMap` options is set then the key "labelHeading" of the
|
||||||
|
* `styles` option is ignored.
|
||||||
|
*/
|
||||||
|
layerHeadingOptions: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: layerLengthOptions
|
||||||
|
* {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerLength> of the total length. If set to null the layer
|
||||||
|
* does not act.
|
||||||
|
*
|
||||||
|
* If `styleMap` option is set then the key "labelLength" of the
|
||||||
|
* `styles` option is ignored.
|
||||||
|
*/
|
||||||
|
layerLengthOptions: undefined,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: layerAreaOptions
|
||||||
|
* {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerArea> of the total area. If set to null the layer does
|
||||||
|
* not act.
|
||||||
|
*
|
||||||
|
* If `styleMap` is set then the key "labelArea" of the `styles` option
|
||||||
|
* is ignored.
|
||||||
|
*/
|
||||||
|
layerAreaOptions: undefined,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: drawingLayer
|
||||||
|
* {<OpenLayers.Layer.Vector>} Drawing layer to store the drawing when
|
||||||
|
* finished.
|
||||||
|
*/
|
||||||
|
drawingLayer: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: multi
|
||||||
|
* {Boolean} Cast features to multi-part geometries before passing to the
|
||||||
|
* drawing layer, only used if declared a <drawingLayer>.
|
||||||
|
* Default is false.
|
||||||
|
*/
|
||||||
|
multi: false,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: layerSegments
|
||||||
|
* {<OpenLayers.Layer.Vector>} The temporary drawing layer to show the
|
||||||
|
* length of the segments.
|
||||||
|
*/
|
||||||
|
layerSegments: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: layerLength
|
||||||
|
* {<OpenLayers.Layer.Vector>} The temporary drawing layer to show total
|
||||||
|
* length.
|
||||||
|
*/
|
||||||
|
layerLength: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: layerArea
|
||||||
|
* {<OpenLayers.Layer.Vector>} The temporary drawing layer to show total
|
||||||
|
* area.
|
||||||
|
*/
|
||||||
|
layerArea: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: dynamicObj
|
||||||
|
* {Object} Internal use.
|
||||||
|
*/
|
||||||
|
dynamicObj: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: isArea
|
||||||
|
* {Boolean} Internal use.
|
||||||
|
*/
|
||||||
|
isArea: null,
|
||||||
|
|
||||||
|
handler2 : null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor: OpenLayers.Control.Measure
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* handler - {<OpenLayers.Handler>}
|
||||||
|
* options - {Object}
|
||||||
|
*
|
||||||
|
* Valid options:
|
||||||
|
* accuracy - {Integer} Digits measurement accuracy, default is 5.
|
||||||
|
* styles - {Object} Alterations of the default styles of the points lines
|
||||||
|
* poligons and labels text, could use keys: "Point",
|
||||||
|
* "Line", "Polygon", "labelSegments", "labelLength", "labelArea".
|
||||||
|
* positions - {Object} Alterations of the default position of the labels.
|
||||||
|
* handlerOptions - {Object} Used to set non-default properties on the
|
||||||
|
* control's handler. If `layerOptions["styleMap"]` is set then the
|
||||||
|
* keys: "Point", "Line" and "Polygon" of the `styles` option
|
||||||
|
* are ignored.
|
||||||
|
* layerSegmentsOptions - {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerSegments> of the lengths of the segments. If
|
||||||
|
* `styleMap` is set then the key "labelSegments" of the `styles` option
|
||||||
|
* is ignored. If set to null the layer does not act.
|
||||||
|
* layerLengthOptions - {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerLength> of the total length. If
|
||||||
|
* `styleMap` is set then the key "labelLength" of the `styles` option
|
||||||
|
* is ignored. If set to null the layer does not act.
|
||||||
|
* layerAreaOptions - {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerArea> of the total area. If
|
||||||
|
* `styleMap` is set then the key "labelArea" of the `styles` option
|
||||||
|
* is ignored. If set to null the layer does not act.
|
||||||
|
* layerHeadingOptions - {Object} Any optional properties to be set on the
|
||||||
|
* layer of <layerHeading> of the angle of the segments. If
|
||||||
|
* `styleMap` is set then the key "labelHeading" of the `styles` option
|
||||||
|
* is ignored. If set to null the layer does not act.
|
||||||
|
* drawingLayer - {<OpenLayers.Layer.Vector>} Optional drawing layer to
|
||||||
|
* store the drawing when finished.
|
||||||
|
* multi - {Boolean} Cast features to multi-part geometries before passing
|
||||||
|
* to the drawing layer
|
||||||
|
*/
|
||||||
|
initialize: function(handler, options) {
|
||||||
|
this.handler2 = handler;
|
||||||
|
// Manage options
|
||||||
|
options = options || {};
|
||||||
|
|
||||||
|
// handlerOptions: persist & multi
|
||||||
|
options.handlerOptions = OpenLayers.Util.extend(
|
||||||
|
{persist: !options.drawingLayer}, options.handlerOptions
|
||||||
|
);
|
||||||
|
if (options.drawingLayer && !('multi' in options.handlerOptions)) {
|
||||||
|
options.handlerOptions.multi = options.multi;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * styles option
|
||||||
|
if (options.drawingLayer) {
|
||||||
|
var sketchStyle = options.drawingLayer.styleMap &&
|
||||||
|
options.drawingLayer.styleMap.styles.temporary;
|
||||||
|
if (sketchStyle) {
|
||||||
|
options.handlerOptions
|
||||||
|
.layerOptions = OpenLayers.Util.applyDefaults(
|
||||||
|
options.handlerOptions.layerOptions, {
|
||||||
|
styleMap: new OpenLayers.StyleMap({
|
||||||
|
'default': sketchStyle
|
||||||
|
})
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var optionsStyles = options.styles || {};
|
||||||
|
options.styles = optionsStyles;
|
||||||
|
var defaultStyles = OpenLayers.Control.DynamicMeasure.styles;
|
||||||
|
// * * styles for handler layer.
|
||||||
|
if (!options.handlerOptions.layerOptions ||
|
||||||
|
!options.handlerOptions.layerOptions.styleMap) {
|
||||||
|
// use the style option for layerOptions of the handler.
|
||||||
|
var style = new OpenLayers.Style(null, {rules: [
|
||||||
|
new OpenLayers.Rule({symbolizer: {
|
||||||
|
'Point': OpenLayers.Util.applyDefaults(
|
||||||
|
optionsStyles.Point, defaultStyles.Point),
|
||||||
|
'Line': OpenLayers.Util.applyDefaults(
|
||||||
|
optionsStyles.Line, defaultStyles.Line),
|
||||||
|
'Polygon': OpenLayers.Util.applyDefaults(
|
||||||
|
optionsStyles.Polygon, defaultStyles.Polygon)
|
||||||
|
}})
|
||||||
|
]});
|
||||||
|
options.handlerOptions = options.handlerOptions || {};
|
||||||
|
options.handlerOptions.layerOptions =
|
||||||
|
options.handlerOptions.layerOptions || {};
|
||||||
|
options.handlerOptions.layerOptions.styleMap =
|
||||||
|
new OpenLayers.StyleMap({'default': style});
|
||||||
|
}
|
||||||
|
|
||||||
|
// * positions option
|
||||||
|
options.positions = OpenLayers.Util.applyDefaults(
|
||||||
|
options.positions,
|
||||||
|
OpenLayers.Control.DynamicMeasure.positions
|
||||||
|
);
|
||||||
|
|
||||||
|
// force some handler options
|
||||||
|
options.callbacks = options.callbacks || {};
|
||||||
|
if (options.drawingLayer) {
|
||||||
|
OpenLayers.Util.applyDefaults(options.callbacks, {
|
||||||
|
create: function(vertex, feature) {
|
||||||
|
this.callbackCreate(vertex, feature);
|
||||||
|
this.drawingLayer.events.triggerEvent(
|
||||||
|
'sketchstarted', {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
modify: function(vertex, feature) {
|
||||||
|
this.callbackModify(vertex, feature);
|
||||||
|
this.drawingLayer.events.triggerEvent(
|
||||||
|
'sketchmodified', {vertex: vertex, feature: feature}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
done: function(geometry) {
|
||||||
|
this.callbackDone(geometry);
|
||||||
|
this.drawFeature(geometry);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
OpenLayers.Util.applyDefaults(options.callbacks, {
|
||||||
|
create: this.callbackCreate,
|
||||||
|
point: this.callbackPoint,
|
||||||
|
cancel: this.callbackCancel,
|
||||||
|
done: this.callbackDone,
|
||||||
|
modify: this.callbackModify,
|
||||||
|
redo: this.callbackRedo,
|
||||||
|
undo: this.callbackUndo
|
||||||
|
});
|
||||||
|
|
||||||
|
// do a trick with the handler to avoid blue background in freehand.
|
||||||
|
var _self = this;
|
||||||
|
var oldOnselectstart = document.onselectstart ?
|
||||||
|
document.onselectstart : OpenLayers.Function.True;
|
||||||
|
var handlerTuned = OpenLayers.Class(handler, {
|
||||||
|
down: function(evt) {
|
||||||
|
document.onselectstart = OpenLayers.Function.False;
|
||||||
|
return handler.prototype.down.apply(this, arguments);
|
||||||
|
},
|
||||||
|
up: function(evt) {
|
||||||
|
document.onselectstart = oldOnselectstart;
|
||||||
|
return handler.prototype.up.apply(this, arguments);
|
||||||
|
},
|
||||||
|
move: function(evt) {
|
||||||
|
if (!this.mouseDown) {
|
||||||
|
document.onselectstart = oldOnselectstart;
|
||||||
|
}
|
||||||
|
return handler.prototype.move.apply(this, arguments);
|
||||||
|
},
|
||||||
|
move2: function(evt) {
|
||||||
|
document.onselectstart = oldOnselectstart;
|
||||||
|
return handler.prototype.move.apply(this, arguments);
|
||||||
|
},
|
||||||
|
mouseout: function(evt) {
|
||||||
|
if (OpenLayers.Util.mouseLeft(evt, this.map.viewPortDiv)) {
|
||||||
|
if (this.mouseDown) {
|
||||||
|
document.onselectstart = oldOnselectstart;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return handler.prototype.mouseout.apply(this, arguments);
|
||||||
|
},
|
||||||
|
finalize: function() {
|
||||||
|
document.onselectstart = oldOnselectstart;
|
||||||
|
handler.prototype.finalize.apply(this, arguments);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
undo: function() {
|
||||||
|
var undone = handler.prototype.undo.call(this);
|
||||||
|
if (undone) {
|
||||||
|
this.callback('undo',
|
||||||
|
[this.point.geometry, this.getSketch(), true]);
|
||||||
|
}
|
||||||
|
return undone;
|
||||||
|
},
|
||||||
|
redo: function() {
|
||||||
|
var redone = handler.prototype.redo.call(this);
|
||||||
|
if (redone) {
|
||||||
|
this.callback('redo',
|
||||||
|
[this.point.geometry, this.getSketch(), true]);
|
||||||
|
}
|
||||||
|
return redone;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// ... and call the constructor
|
||||||
|
OpenLayers.Control.Measure.prototype.initialize.call(
|
||||||
|
this, handlerTuned, options);
|
||||||
|
|
||||||
|
this.isArea = handler.prototype.polygon !== undefined; // duck typing
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: destroy
|
||||||
|
*/
|
||||||
|
destroy: function() {
|
||||||
|
this.deactivate();
|
||||||
|
OpenLayers.Control.Measure.prototype.destroy.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: draw
|
||||||
|
* This control does not have HTML component, so this method should
|
||||||
|
* be empty.
|
||||||
|
*/
|
||||||
|
draw: function() {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: activate
|
||||||
|
*/
|
||||||
|
activate: function() {
|
||||||
|
var response = OpenLayers.Control.Measure.prototype.activate.apply(
|
||||||
|
this, arguments);
|
||||||
|
if (response) {
|
||||||
|
// Create dynamicObj
|
||||||
|
this.dynamicObj = {};
|
||||||
|
// Create layers
|
||||||
|
var _optionsStyles = this.styles || {},
|
||||||
|
_defaultStyles = OpenLayers.Control.DynamicMeasure.styles,
|
||||||
|
_self = this;
|
||||||
|
var _create = function(styleName, initialOptions) {
|
||||||
|
if (initialOptions === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var options = OpenLayers.Util.extend({
|
||||||
|
displayInLayerSwitcher: false,
|
||||||
|
calculateInRange: OpenLayers.Function.True
|
||||||
|
// ?? ,wrapDateLine: this.citeCompliant
|
||||||
|
}, initialOptions);
|
||||||
|
if (!options.styleMap) {
|
||||||
|
var style = _optionsStyles[styleName];
|
||||||
|
|
||||||
|
options.styleMap = new OpenLayers.StyleMap({
|
||||||
|
'default': OpenLayers.Util.applyDefaults(style,
|
||||||
|
_defaultStyles[styleName])
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var layer = new OpenLayers.Layer.Vector(
|
||||||
|
_self.CLASS_NAME + ' ' + styleName, options);
|
||||||
|
_self.map.addLayer(layer);
|
||||||
|
return layer;
|
||||||
|
};
|
||||||
|
this.layerSegments =
|
||||||
|
_create('labelSegments', this.layerSegmentsOptions);
|
||||||
|
this.layerHeading =
|
||||||
|
_create('labelHeading', this.layerHeadingOptions);
|
||||||
|
this.layerLength = _create('labelLength', this.layerLengthOptions);
|
||||||
|
if (this.isArea) {
|
||||||
|
this.layerArea = _create('labelArea', this.layerAreaOptions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: deactivate
|
||||||
|
*/
|
||||||
|
deactivate: function() {
|
||||||
|
var response = OpenLayers.Control.Measure.prototype.deactivate.apply(
|
||||||
|
this, arguments);
|
||||||
|
if (response) {
|
||||||
|
if (this.layerSegments) {
|
||||||
|
this.layerSegments.destroy();
|
||||||
|
}
|
||||||
|
if (this.layerLength) {
|
||||||
|
this.layerLength.destroy();
|
||||||
|
}
|
||||||
|
if (this.layerHeading) {
|
||||||
|
this.layerHeading.destroy();
|
||||||
|
}
|
||||||
|
if (this.layerArea) {
|
||||||
|
this.layerArea.destroy();
|
||||||
|
}
|
||||||
|
this.dynamicObj = null;
|
||||||
|
this.layerSegments = null;
|
||||||
|
this.layerLength = null;
|
||||||
|
this.layerHeading = null;
|
||||||
|
this.layerArea = null;
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: setImmediate
|
||||||
|
* Sets the <immediate> property. Changes the activity of immediate
|
||||||
|
* measurement.
|
||||||
|
*/
|
||||||
|
setImmediate: function(immediate) {
|
||||||
|
this.immediate = immediate;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackCreate
|
||||||
|
*/
|
||||||
|
callbackCreate: function() {
|
||||||
|
var dynamicObj = this.dynamicObj;
|
||||||
|
dynamicObj.drawing = false;
|
||||||
|
dynamicObj.freehand = false;
|
||||||
|
dynamicObj.fromIndex = 0;
|
||||||
|
dynamicObj.countSegments = 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackCancel
|
||||||
|
*/
|
||||||
|
callbackCancel: function() {
|
||||||
|
this.destroyLabels();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackDone
|
||||||
|
* Called when the measurement sketch is done.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* geometry - {<OpenLayers.Geometry>}
|
||||||
|
*/
|
||||||
|
callbackDone: function(geometry) {
|
||||||
|
this.measureComplete(geometry);
|
||||||
|
if (!this.persist) {
|
||||||
|
this.destroyLabels();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: drawFeature
|
||||||
|
*/
|
||||||
|
drawFeature: function(geometry) {
|
||||||
|
var feature = new OpenLayers.Feature.Vector(geometry);
|
||||||
|
var proceed = this.drawingLayer.events.triggerEvent(
|
||||||
|
'sketchcomplete', {feature: feature}
|
||||||
|
);
|
||||||
|
if (proceed !== false) {
|
||||||
|
feature.state = OpenLayers.State.INSERT;
|
||||||
|
this.drawingLayer.addFeatures([feature]);
|
||||||
|
if (this.featureAdded) {
|
||||||
|
// for compatibility
|
||||||
|
this.featureAdded(feature);
|
||||||
|
}
|
||||||
|
this.events.triggerEvent('featureadded', {feature: feature});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackCancel
|
||||||
|
*/
|
||||||
|
destroyLabels: function() {
|
||||||
|
if (this.layerSegments) {
|
||||||
|
this.layerSegments.destroyFeatures(null, {silent: true});
|
||||||
|
}
|
||||||
|
if (this.layerLength) {
|
||||||
|
this.layerLength.destroyFeatures(null, {silent: true});
|
||||||
|
}
|
||||||
|
if (this.layerHeading) {
|
||||||
|
this.layerHeading.destroyFeatures(null, {silent: true});
|
||||||
|
}
|
||||||
|
if (this.layerArea) {
|
||||||
|
this.layerArea.destroyFeatures(null, {silent: true});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackPoint
|
||||||
|
*/
|
||||||
|
callbackPoint: function(point, geometry) {
|
||||||
|
var dynamicObj = this.dynamicObj;
|
||||||
|
if (!dynamicObj.drawing) {
|
||||||
|
this.destroyLabels();
|
||||||
|
}
|
||||||
|
if (!this.handler.freehandMode(this.handler.evt)) {
|
||||||
|
dynamicObj.fromIndex = this.handler.getCurrentPointIndex() - 1;
|
||||||
|
dynamicObj.freehand = false;
|
||||||
|
dynamicObj.countSegments++;
|
||||||
|
} else if (!dynamicObj.freehand) {
|
||||||
|
// freehand has started
|
||||||
|
dynamicObj.fromIndex = this.handler.getCurrentPointIndex() - 1;
|
||||||
|
dynamicObj.freehand = true;
|
||||||
|
dynamicObj.countSegments++;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.measurePartial(point, geometry);
|
||||||
|
dynamicObj.drawing = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackUndo
|
||||||
|
*/
|
||||||
|
callbackUndo: function(point, feature) {
|
||||||
|
var _self = this,
|
||||||
|
undoLabel = function(layer) {
|
||||||
|
if (layer) {
|
||||||
|
var features = layer.features,
|
||||||
|
lastSegmentIndex = features.length - 1,
|
||||||
|
lastSegment = features[lastSegmentIndex],
|
||||||
|
lastSegmentFromIndex = lastSegment.attributes.from,
|
||||||
|
lastPointIndex = _self.handler.getCurrentPointIndex();
|
||||||
|
if (lastSegmentFromIndex >= lastPointIndex) {
|
||||||
|
var dynamicObj = _self.dynamicObj;
|
||||||
|
layer.destroyFeatures(lastSegment);
|
||||||
|
lastSegment = features[lastSegmentIndex - 1];
|
||||||
|
dynamicObj.fromIndex = lastSegment.attributes.from;
|
||||||
|
dynamicObj.countSegments = features.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
undoLabel(this.layerSegments);
|
||||||
|
undoLabel(this.layerHeading);
|
||||||
|
this.callbackModify(point, feature, true);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackRedo
|
||||||
|
*/
|
||||||
|
callbackRedo: function(point, feature) {
|
||||||
|
var line = this.handler.line.geometry,
|
||||||
|
currIndex = this.handler.getCurrentPointIndex();
|
||||||
|
var dynamicObj = this.dynamicObj;
|
||||||
|
this.showLabelSegment(
|
||||||
|
dynamicObj.countSegments,
|
||||||
|
dynamicObj.fromIndex,
|
||||||
|
line.components.slice(dynamicObj.fromIndex, currIndex)
|
||||||
|
);
|
||||||
|
dynamicObj.fromIndex = this.handler.getCurrentPointIndex() - 1;
|
||||||
|
dynamicObj.countSegments++;
|
||||||
|
this.callbackModify(point, feature, true);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: callbackModify
|
||||||
|
*/
|
||||||
|
callbackModify: function(point, feature, drawing) {
|
||||||
|
if (this.immediate) {
|
||||||
|
this.measureImmediate(point, feature, drawing);
|
||||||
|
}
|
||||||
|
|
||||||
|
var dynamicObj = this.dynamicObj;
|
||||||
|
if (dynamicObj.drawing === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var line = this.handler.line.geometry,
|
||||||
|
currIndex = this.handler.getCurrentPointIndex();
|
||||||
|
if (!this.handler.freehandMode(this.handler.evt) &&
|
||||||
|
dynamicObj.freehand) {
|
||||||
|
// freehand has stopped
|
||||||
|
dynamicObj.fromIndex = currIndex - 1;
|
||||||
|
dynamicObj.freehand = false;
|
||||||
|
dynamicObj.countSegments++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// total measure
|
||||||
|
var totalLength = this.getBestLength(line);
|
||||||
|
if (!totalLength[0]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var positions = this.positions,
|
||||||
|
positionGet = {
|
||||||
|
center: function() {
|
||||||
|
var center = feature.geometry.getBounds().clone();
|
||||||
|
center.extend(point);
|
||||||
|
center = center.getCenterLonLat();
|
||||||
|
return [center.lon, center.lat];
|
||||||
|
},
|
||||||
|
initial: function() {
|
||||||
|
var initial = line.components[0];
|
||||||
|
return [initial.x, initial.y];
|
||||||
|
},
|
||||||
|
start: function() {
|
||||||
|
var start = line.components[dynamicObj.fromIndex];
|
||||||
|
return [start.x, start.y];
|
||||||
|
},
|
||||||
|
middle: function() {
|
||||||
|
var start = line.components[dynamicObj.fromIndex];
|
||||||
|
return [(start.x + point.x) / 2, (start.y + point.y) / 2];
|
||||||
|
},
|
||||||
|
end: function() {
|
||||||
|
return [point.x, point.y];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (this.layerLength) {
|
||||||
|
this.showLabel(
|
||||||
|
this.layerLength, 1, 0, totalLength,
|
||||||
|
positionGet[positions.labelLength](), 1);
|
||||||
|
}
|
||||||
|
if (this.isArea) {
|
||||||
|
if (this.layerArea) {
|
||||||
|
var totalArea = this.getBestArea(feature.geometry);
|
||||||
|
if (totalArea[0] || this.layerArea.features.length) {
|
||||||
|
this.showLabel(this.layerArea, 1, 0,
|
||||||
|
totalArea, positionGet[positions.labelArea](), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.showLabelSegment(
|
||||||
|
1, 0, [line.components[currIndex], line.components[0]])) {
|
||||||
|
dynamicObj.countSegments++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.showLabelSegment(
|
||||||
|
dynamicObj.countSegments,
|
||||||
|
dynamicObj.fromIndex,
|
||||||
|
line.components.slice(dynamicObj.fromIndex, currIndex + 1)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function: showLabelSegment
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* labelsNumber- {Integer} Number of the labels to be on the label layer.
|
||||||
|
* fromIndex - {Integer} Index of the last point on the measured feature.
|
||||||
|
* points - Array({<OpenLayers.Geometry.Point>})
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* {Boolean}
|
||||||
|
*/
|
||||||
|
showLabelSegment: function(labelsNumber, fromIndex, _points) {
|
||||||
|
var layerSegments = this.layerSegments,
|
||||||
|
layerHeading = this.layerHeading;
|
||||||
|
if (!layerSegments && !layerHeading) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// clone points
|
||||||
|
var points = [],
|
||||||
|
pointsLen = _points.length;
|
||||||
|
for (var i = 0; i < pointsLen; i++) {
|
||||||
|
points.push(_points[i].clone());
|
||||||
|
}
|
||||||
|
var segmentLength =
|
||||||
|
this.getBestLength(new OpenLayers.Geometry.LineString(points));
|
||||||
|
if (segmentLength[0] == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var positions = this.positions,
|
||||||
|
from = points[0],
|
||||||
|
to = points[pointsLen - 1],
|
||||||
|
positionGet = {
|
||||||
|
start: function() {
|
||||||
|
return [from.x, from.y];
|
||||||
|
},
|
||||||
|
middle: function() {
|
||||||
|
return [(from.x + to.x) / 2, (from.y + to.y) / 2];
|
||||||
|
},
|
||||||
|
end: function() {
|
||||||
|
return [to.x, to.y];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created = false;
|
||||||
|
if (layerSegments) {
|
||||||
|
created = this.showLabel(layerSegments, labelsNumber, fromIndex,
|
||||||
|
segmentLength,
|
||||||
|
positionGet[positions.labelSegments](),
|
||||||
|
this.maxSegments);
|
||||||
|
}
|
||||||
|
if (layerHeading) {
|
||||||
|
var heading = Math.atan2(to.y - from.y, to.x - from.x),
|
||||||
|
bearing = 90 - heading * 180 / Math.PI;
|
||||||
|
if (bearing < 0) {
|
||||||
|
bearing += 360;
|
||||||
|
}
|
||||||
|
created = this.showLabel(layerHeading,
|
||||||
|
labelsNumber, fromIndex,
|
||||||
|
[bearing, '°'],
|
||||||
|
positionGet[positions.labelHeading](),
|
||||||
|
this.maxHeadings) || created;
|
||||||
|
}
|
||||||
|
return created;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function: showLabel
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* layer - {<OpenLayers.Layer.Vector>} Layer of the labels.
|
||||||
|
* labelsNumber- {Integer} Number of the labels to be on the label layer.
|
||||||
|
* fromIndex - {Integer} Index of the last point on the measured feature.
|
||||||
|
* measure - Array({Float|String}) Measure provided by OL Measure control.
|
||||||
|
* points - Array({Fload}) Array of x and y of the point to draw the label.
|
||||||
|
* maxSegments - {Integer|Null} Maximum number of visible segments measures
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* {Boolean}
|
||||||
|
*/
|
||||||
|
showLabel: function(
|
||||||
|
layer, labelsNumber, fromIndex, measure, xy, maxSegments) {
|
||||||
|
var featureLabel, featureAux,
|
||||||
|
features = layer.features;
|
||||||
|
if (features.length < labelsNumber) {
|
||||||
|
// add a label
|
||||||
|
featureLabel = new OpenLayers.Feature.Vector(
|
||||||
|
new OpenLayers.Geometry.Point(xy[0], xy[1]),
|
||||||
|
{from: fromIndex}
|
||||||
|
);
|
||||||
|
this.setMesureAttributes(featureLabel.attributes, measure);
|
||||||
|
layer.addFeatures([featureLabel]);
|
||||||
|
if (maxSegments !== null) {
|
||||||
|
var hide = (features.length - maxSegments) - 1;
|
||||||
|
if (hide >= 0) {
|
||||||
|
featureAux = features[hide];
|
||||||
|
featureAux.style = {display: 'none'};
|
||||||
|
layer.drawFeature(featureAux);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
// update a label
|
||||||
|
featureLabel = features[labelsNumber - 1];
|
||||||
|
var geometry = featureLabel.geometry;
|
||||||
|
geometry.x = xy[0];
|
||||||
|
geometry.y = xy[1];
|
||||||
|
geometry.clearBounds();
|
||||||
|
this.setMesureAttributes(featureLabel.attributes, measure);
|
||||||
|
layer.drawFeature(featureLabel);
|
||||||
|
if (maxSegments !== null) {
|
||||||
|
var show = (features.length - maxSegments);
|
||||||
|
if (show >= 0) {
|
||||||
|
featureAux = features[show];
|
||||||
|
if (featureAux.style) {
|
||||||
|
delete featureAux.style;
|
||||||
|
layer.drawFeature(featureAux);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: setMesureAttributes
|
||||||
|
* Format measure[0] with digits of <accuracy>. Could internationalize the
|
||||||
|
* format customizing <OpenLayers.Number.thousandsSeparator> and
|
||||||
|
* <OpenLayers.Number.decimalSeparator>
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* attributes - {object} Target attributes.
|
||||||
|
* measure - Array({*})
|
||||||
|
*/
|
||||||
|
setMesureAttributes: function(attributes, measure) {
|
||||||
|
attributes.measure = OpenLayers.Number.format(
|
||||||
|
Number(measure[0].toPrecision(this.accuracy)), null);
|
||||||
|
attributes.units = measure[1];
|
||||||
|
},
|
||||||
|
|
||||||
|
CLASS_NAME: 'OpenLayers.Control.DynamicMeasure'
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant: OpenLayers.Control.DynamicMeasure.styles
|
||||||
|
* Contains the keys: "Point", "Line", "Polygon",
|
||||||
|
* "labelSegments", "labelHeading", "labelLength" and
|
||||||
|
* "labelArea" as a objects with style keys.
|
||||||
|
*/
|
||||||
|
OpenLayers.Control.DynamicMeasure.styles = {
|
||||||
|
'Point': {
|
||||||
|
pointRadius: 4,
|
||||||
|
graphicName: 'square',
|
||||||
|
fillColor: 'white',
|
||||||
|
fillOpacity: 1,
|
||||||
|
strokeWidth: 1,
|
||||||
|
strokeOpacity: 1,
|
||||||
|
strokeColor: '#333333'
|
||||||
|
},
|
||||||
|
'Line': {
|
||||||
|
strokeWidth: 2,
|
||||||
|
strokeOpacity: 1,
|
||||||
|
strokeColor: '#666666',
|
||||||
|
strokeDashstyle: 'dash'
|
||||||
|
},
|
||||||
|
'Polygon': {
|
||||||
|
strokeWidth: 2,
|
||||||
|
strokeOpacity: 1,
|
||||||
|
strokeColor: '#666666',
|
||||||
|
strokeDashstyle: 'solid',
|
||||||
|
fillColor: 'white',
|
||||||
|
fillOpacity: 0.3
|
||||||
|
},
|
||||||
|
labelSegments: {
|
||||||
|
label: '${measure} ${units}',
|
||||||
|
fontSize: '11px',
|
||||||
|
fontColor: '#800517',
|
||||||
|
fontFamily: 'Verdana',
|
||||||
|
labelOutlineColor: '#dddddd',
|
||||||
|
labelAlign: 'cm',
|
||||||
|
labelOutlineWidth: 2
|
||||||
|
},
|
||||||
|
labelLength: {
|
||||||
|
label: '${measure} ${units}\n',
|
||||||
|
fontSize: '11px',
|
||||||
|
fontWeight: 'bold',
|
||||||
|
fontColor: '#800517',
|
||||||
|
fontFamily: 'Verdana',
|
||||||
|
labelOutlineColor: '#dddddd',
|
||||||
|
labelAlign: 'lb',
|
||||||
|
labelOutlineWidth: 3
|
||||||
|
},
|
||||||
|
labelArea: {
|
||||||
|
label: '${measure}\n${units}2\n',
|
||||||
|
fontSize: '11px',
|
||||||
|
fontWeight: 'bold',
|
||||||
|
fontColor: '#800517',
|
||||||
|
fontFamily: 'Verdana',
|
||||||
|
labelOutlineColor: '#dddddd',
|
||||||
|
labelAlign: 'cm',
|
||||||
|
labelOutlineWidth: 3
|
||||||
|
},
|
||||||
|
labelHeading: {
|
||||||
|
label: '${measure} ${units}',
|
||||||
|
fontSize: '11px',
|
||||||
|
fontColor: '#800517',
|
||||||
|
fontFamily: 'Verdana',
|
||||||
|
labelOutlineColor: '#dddddd',
|
||||||
|
labelAlign: 'cm',
|
||||||
|
labelOutlineWidth: 3
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant: OpenLayers.Control.DynamicMeasure.positions
|
||||||
|
* Contains the keys: "labelSegments", "labelHeading",
|
||||||
|
* "labelLength" and "labelArea" as a strings with values 'start',
|
||||||
|
* 'middle' and 'end' allowed for all keys (refered of last segment) and
|
||||||
|
* 'center' and 'initial' (refered of the measured feature and only allowed
|
||||||
|
* for "labelLength" and "labelArea" keys)
|
||||||
|
*/
|
||||||
|
OpenLayers.Control.DynamicMeasure.positions = {
|
||||||
|
labelSegments: 'middle',
|
||||||
|
labelLength: 'end',
|
||||||
|
labelArea: 'center',
|
||||||
|
labelHeading: 'start'
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,288 @@
|
||||||
|
// +---------------------------------------------------------------+
|
||||||
|
// | DO NOT REMOVE THIS |
|
||||||
|
// +---------------------------------------------------------------+
|
||||||
|
// | DynamicTree 1.5.2 |
|
||||||
|
// | Author: Cezary Tomczak [www.gosu.pl] |
|
||||||
|
// | Free for any use as long as all copyright messages are intact |
|
||||||
|
// +---------------------------------------------------------------+
|
||||||
|
|
||||||
|
function DynamicTree(id) {
|
||||||
|
this.foldersAsLinks = false;
|
||||||
|
this.path = "/images/map/";
|
||||||
|
this.img = {
|
||||||
|
"branch": "tree-branch.gif",
|
||||||
|
"doc": "tree-doc.gif",
|
||||||
|
"folder": "tree-folder.gif",
|
||||||
|
"folderOpen": "tree-folder-open.gif",
|
||||||
|
"leaf": "tree-leaf.gif",
|
||||||
|
"leafEnd": "tree-leaf-end.gif",
|
||||||
|
"node": "tree-node.gif",
|
||||||
|
"nodeEnd": "tree-node-end.gif",
|
||||||
|
"nodeOpen": "tree-node-open.gif",
|
||||||
|
"nodeOpenEnd": "tree-node-open-end.gif" };
|
||||||
|
this.cookiePath = "";
|
||||||
|
this.cookieDomain = "";
|
||||||
|
this.init = function() {
|
||||||
|
var p, img;
|
||||||
|
for (p in this.img) {
|
||||||
|
this.img[p] = this.path + this.img[p];
|
||||||
|
}
|
||||||
|
for (p in this.img) {
|
||||||
|
this.imgObjects.push(new Image());
|
||||||
|
this.imgObjects.getLast().src = this.img[p];
|
||||||
|
this.img[p] = this.imgObjects.getLast().src;
|
||||||
|
}
|
||||||
|
this.parse(document.getElementById(this.id).childNodes, this.tree, 1);
|
||||||
|
//this.loadState();
|
||||||
|
if (window.addEventListener) { window.addEventListener("unload", function(e) { self.saveState(); }, false); }
|
||||||
|
else if (window.attachEvent) { window.attachEvent("onunload", function(e) { self.saveState(); }); }
|
||||||
|
this.updateHtml();
|
||||||
|
};
|
||||||
|
this.parse = function(nodes, tree) {
|
||||||
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
|
if (nodes[i].nodeType == 1) {
|
||||||
|
if (!nodes[i].className) { continue; }
|
||||||
|
if (!nodes[i].id) {
|
||||||
|
nodes[i].id = this.id + "-" + (++this.count);
|
||||||
|
}
|
||||||
|
var node = new Node();
|
||||||
|
node.id = nodes[i].id;
|
||||||
|
if (nodes[i].firstChild) {
|
||||||
|
if (nodes[i].firstChild.tagName == "A") {
|
||||||
|
var a = nodes[i].firstChild;
|
||||||
|
if (a.firstChild) {
|
||||||
|
node.text = a.firstChild.nodeValue.trim();
|
||||||
|
}
|
||||||
|
if (a.href) {
|
||||||
|
node.href = a.href;
|
||||||
|
}
|
||||||
|
if (a.title) {
|
||||||
|
node.title = a.title;
|
||||||
|
}
|
||||||
|
if (a.target) {
|
||||||
|
node.target = a.target;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
node.text = nodes[i].firstChild.nodeValue.trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
node.parentNode = tree;
|
||||||
|
node.childNodes = (nodes[i].className == "folder" ? new Array() : null);
|
||||||
|
node.isDoc = (nodes[i].className == "doc");
|
||||||
|
node.isFolder = (nodes[i].className == "folder");
|
||||||
|
tree.childNodes.push(node);
|
||||||
|
this.allNodes[node.id] = node;
|
||||||
|
}
|
||||||
|
if (nodes[i].nodeType == 1 && nodes[i].childNodes) {
|
||||||
|
this.parse(nodes[i].childNodes, tree.childNodes.getLast());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.nodeClick = function(id) {
|
||||||
|
var el = document.getElementById(id+"-section");
|
||||||
|
var node = document.getElementById(id+"-node");
|
||||||
|
var icon = document.getElementById(id+"-icon");
|
||||||
|
if (el.style.display == "block") {
|
||||||
|
el.style.display = "none";
|
||||||
|
if (this.allNodes[id].isLast()) { node.src = this.img.nodeEnd; }
|
||||||
|
else { node.src = this.img.node; }
|
||||||
|
icon.src = this.img.folder;
|
||||||
|
this.opened.removeByValue(id);
|
||||||
|
} else {
|
||||||
|
el.style.display = "block";
|
||||||
|
if (this.allNodes[id].isLast()) { node.src = this.img.nodeOpenEnd; }
|
||||||
|
else { node.src = this.img.nodeOpen; }
|
||||||
|
icon.src = this.img.folderOpen;
|
||||||
|
this.opened.push(id);
|
||||||
|
}
|
||||||
|
/* fix ie bug - images not showing */
|
||||||
|
if (node.outerHTML) { node.outerHTML = node.outerHTML; }
|
||||||
|
if (icon.outerHTML) { icon.outerHTML = icon.outerHTML; }
|
||||||
|
};
|
||||||
|
this.toHtml = function() {
|
||||||
|
var s = "";
|
||||||
|
var nodes = this.tree.childNodes;
|
||||||
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
|
s += nodes[i].toHtml();
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
};
|
||||||
|
this.updateHtml = function() {
|
||||||
|
document.getElementById(this.id).innerHTML = this.toHtml();
|
||||||
|
};
|
||||||
|
this.loadState = function() {
|
||||||
|
var opened = this.cookie.get("opened");
|
||||||
|
if (opened) {
|
||||||
|
this.opened = opened.split("|");
|
||||||
|
this.opened.filter(function(id) { return self.allNodes[id] && self.allNodes[id].isFolder && self.allNodes[id].childNodes.length; });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.saveState = function() {
|
||||||
|
if (this.opened.length) {
|
||||||
|
this.cookie.set("opened", this.opened.join("|"), 3600*24*30, this.cookiePath, this.cookieDomain);
|
||||||
|
} else {
|
||||||
|
this.clearState();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.clearState = function() {
|
||||||
|
this.cookie.del("opened");
|
||||||
|
};
|
||||||
|
function Node(id, text, parentNode, childNodes, isDoc, isFolder) {
|
||||||
|
this.id = id;
|
||||||
|
this.text = text;
|
||||||
|
this.parentNode = parentNode;
|
||||||
|
this.childNodes = childNodes;
|
||||||
|
this.isDoc = isDoc;
|
||||||
|
this.isFolder = isFolder;
|
||||||
|
this.href = "";
|
||||||
|
this.title = "";
|
||||||
|
this.target = "";
|
||||||
|
this.isLast = function() {
|
||||||
|
if (this.parentNode) {
|
||||||
|
return this.parentNode.childNodes.getLast().id == this.id;
|
||||||
|
}
|
||||||
|
throw "DynamicTree.Node.isLast() failed, this func cannot be called for the root element";
|
||||||
|
};
|
||||||
|
this.toHtml = function() {
|
||||||
|
var s = '<div class="?" id="?">'.format((this.isFolder ? "folder" : "doc"), this.id);
|
||||||
|
if (this.isFolder) {
|
||||||
|
var nodeIcon;
|
||||||
|
if (this.childNodes.length) {
|
||||||
|
nodeIcon = (self.opened.contains(this.id) ? (this.isLast() ? self.img.nodeOpenEnd : self.img.nodeOpen) : (this.isLast() ? self.img.nodeEnd : self.img.node));
|
||||||
|
} else {
|
||||||
|
nodeIcon = (this.isLast() ? self.img.leafEnd : self.img.leaf);
|
||||||
|
}
|
||||||
|
var icon = ((self.opened.contains(this.id) && this.childNodes.length) ? self.img.folderOpen : self.img.folder);
|
||||||
|
if (this.childNodes.length) { s += '<a href="javascript:void(0)" onclick="?.nodeClick(\'?\')">'.format(self.id, this.id); }
|
||||||
|
s += '<img id="?-node" src="?" width="18" height="18" alt="" />'.format(this.id, nodeIcon);
|
||||||
|
if (this.childNodes.length) { s += '</a>'; }
|
||||||
|
s += '<img id="?-icon" src="?" width="18" height="18" alt="" />'.format(this.id, icon);
|
||||||
|
if (self.foldersAsLinks) {
|
||||||
|
s += '<a href="?"??>?</a>'.format(this.href, (this.title ? ' title="?"'.format(this.title) : ""), (this.target ? ' target="?"'.format(this.target) : ""), this.text);
|
||||||
|
} else {
|
||||||
|
s += this.text;
|
||||||
|
}
|
||||||
|
if (this.childNodes.length) {
|
||||||
|
s += '<div class="section?" id="?-section"'.format((this.isLast() ? " last" : ""), this.id);
|
||||||
|
if (self.opened.contains(this.id)) {
|
||||||
|
s += ' style="display: block;"'; }
|
||||||
|
s += '>';
|
||||||
|
for (var i = 0; i < this.childNodes.length; i++) {
|
||||||
|
s += this.childNodes[i].toHtml();
|
||||||
|
}
|
||||||
|
s += '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.isDoc) {
|
||||||
|
//s += '<img src="?" width="18" height="18" alt="" /><img src="?" width="18" height="18" alt="" />'.format((this.isLast() ? self.img.leafEnd : self.img.leaf), self.img.doc);
|
||||||
|
s += '<img src="?" width="18" height="18" alt="" />'.format((this.isLast() ? self.img.leafEnd : self.img.leaf));
|
||||||
|
//s += '<input type="checkbox" name="consolidation1" style="width:15; height:15;">';
|
||||||
|
s += '<a href="?"??>?</a>'.format(this.href, (this.title ? ' title="?"'.format(this.title) : ""), (this.target ? ' target="?"'.format(this.target) : ""), this.text);
|
||||||
|
|
||||||
|
}
|
||||||
|
s += '</div>';
|
||||||
|
return s;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function Cookie() {
|
||||||
|
this.get = function(name) {
|
||||||
|
var cookies = document.cookie.split(";");
|
||||||
|
for (var i = 0; i < cookies.length; ++i) {
|
||||||
|
var a = cookies[i].split("=");
|
||||||
|
if (a.length == 2) {
|
||||||
|
a[0] = a[0].trim();
|
||||||
|
a[1] = a[1].trim();
|
||||||
|
if (a[0] == name) {
|
||||||
|
return unescape(a[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
};
|
||||||
|
this.set = function(name, value, seconds, path, domain, secure) {
|
||||||
|
var cookie = (name + "=" + escape(value));
|
||||||
|
if (seconds) {
|
||||||
|
var date = new Date(new Date().getTime()+seconds*1000);
|
||||||
|
cookie += ("; expires="+date.toGMTString());
|
||||||
|
}
|
||||||
|
cookie += (path ? "; path="+path : "");
|
||||||
|
cookie += (domain ? "; domain="+domain : "");
|
||||||
|
cookie += (secure ? "; secure" : "");
|
||||||
|
document.cookie = cookie;
|
||||||
|
};
|
||||||
|
this.del = function(name) {
|
||||||
|
document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var self = this;
|
||||||
|
this.id = id;
|
||||||
|
this.tree = new Node("tree", "", null, new Array(), false, true);
|
||||||
|
this.allNodes = {}; // id => object
|
||||||
|
this.opened = []; // opened folders
|
||||||
|
this.active = ""; // active node, text clicked
|
||||||
|
this.cookie = new Cookie();
|
||||||
|
this.imgObjects = [];
|
||||||
|
this.count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check whether array contains given string */
|
||||||
|
if (!Array.prototype.contains) {
|
||||||
|
Array.prototype.contains = function(s) {
|
||||||
|
for (var i = 0; i < this.length; ++i) {
|
||||||
|
if (this[i] === s) { return true; }
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove elements with such value (mutates) */
|
||||||
|
if (!Array.prototype.removeByValue) {
|
||||||
|
Array.prototype.removeByValue = function(value) {
|
||||||
|
var i, indexes = [];
|
||||||
|
for (i = 0; i < this.length; ++i) {
|
||||||
|
if (this[i] === value) { indexes.push(i); }
|
||||||
|
}
|
||||||
|
for (i = indexes.length - 1; i >= 0; --i) {
|
||||||
|
this.splice(indexes[i], 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove elements judged 'false' by the passed function (mutates) */
|
||||||
|
if (!Array.prototype.filter) {
|
||||||
|
Array.prototype.filter = function(func) {
|
||||||
|
var i, indexes = [];
|
||||||
|
for (i = 0; i < this.length; ++i) {
|
||||||
|
if (!func(this[i])) { indexes.push(i); }
|
||||||
|
}
|
||||||
|
for (i = indexes.length - 1; i >= 0; --i) {
|
||||||
|
this.splice(indexes[i], 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get the last element from the array */
|
||||||
|
if (!Array.prototype.getLast) {
|
||||||
|
Array.prototype.getLast = function() {
|
||||||
|
return this[this.length-1];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Strip whitespace from the beginning and end of a string */
|
||||||
|
if (!String.prototype.trim) {
|
||||||
|
String.prototype.trim = function() {
|
||||||
|
return this.replace(/^\s*|\s*$/g, "");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Replace ? tokens with variables passed as arguments in a string */
|
||||||
|
String.prototype.format = function() {
|
||||||
|
if (!arguments.length) { throw "String.format() failed, no arguments passed, this = "+this; }
|
||||||
|
var tokens = this.split("?");
|
||||||
|
if (arguments.length != (tokens.length - 1)) { throw "String.format() failed, tokens != arguments, this = "+this; }
|
||||||
|
var s = tokens[0];
|
||||||
|
for (var i = 0; i < arguments.length; ++i) {
|
||||||
|
s += (arguments[i] + tokens[i + 1]);
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
/*************************************************************************************************
|
||||||
|
* µðÀÚÀΰü·Ã ½ºÅ©¸³Æ®
|
||||||
|
* 2006-10-23 ljy
|
||||||
|
*************************************************************************************************/
|
||||||
|
|
||||||
|
function MM_swapImgRestore() { //v3.0
|
||||||
|
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
function MM_preloadImages() { //v3.0
|
||||||
|
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
|
||||||
|
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
|
||||||
|
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
|
||||||
|
}
|
||||||
|
|
||||||
|
function MM_findObj(n, d) { //v4.01
|
||||||
|
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
|
||||||
|
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
|
||||||
|
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
|
||||||
|
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
|
||||||
|
if(!x && d.getElementById) x=d.getElementById(n); return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
function MM_swapImage() { //v3.0
|
||||||
|
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
|
||||||
|
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
//download.js v3.1, by dandavis; 2008-2015. [CCBY2] see http://danml.com/download.html for tests/usage
|
||||||
|
(function(f,a){"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?module.exports=a():f.download=a()})(this,function(){return function(f,a,b){function n(l){var a=l.split(/[:;,]/);l=a[1];var a=("base64"==a[2]?atob:decodeURIComponent)(a.pop()),c=a.length,b=0,d=new Uint8Array(c);for(b;b<c;++b)d[b]=a.charCodeAt(b);return new g([d],{type:l})}function k(a,b){if("download"in d)return d.href=a,d.setAttribute("download",m),d.innerHTML="downloading...",h.body.appendChild(d),setTimeout(function(){d.click(),h.body.removeChild(d),!0===b&&setTimeout(function(){e.URL.revokeObjectURL(d.href)},250)},66),!0;if("undefined"!=typeof safari)return a="data:"+a.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream"),!window.open(a)&&confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")&&(location.href=a),!0;var c=h.createElement("iframe");h.body.appendChild(c),b||(a="data:"+a.replace(/^data:([\w\/\-\+]+)/,"application/octet-stream")),c.src=a,setTimeout(function(){h.body.removeChild(c)},333)}var e=window;b=b||"application/octet-stream";var c=f,h=document,d=h.createElement("a");f=function(a){return String(a)};var g=e.Blob||e.MozBlob||e.WebKitBlob||f,g=g.call?g.bind(e):Blob,m=a||"download";"true"===String(this)&&(c=[c,b],b=c[0],c=c[1]);if(String(c).match(/^data\:[\w+\-]+\/[\w+\-]+[,;]/))return navigator.msSaveBlob?navigator.msSaveBlob(n(c),m):k(c);a=c instanceof g?c:new g([c],{type:b});if(navigator.msSaveBlob)return navigator.msSaveBlob(a,m);if(e.URL)k(e.URL.createObjectURL(a),!0);else{if("string"==typeof a||a.constructor===f)try{return k("data:"+b+";base64,"+e.btoa(a))}catch(p){return k("data:"+b+","+encodeURIComponent(a))}b=new FileReader,b.onload=function(a){k(this.result)},b.readAsDataURL(a)}return!0}});
|
||||||
|
|
@ -0,0 +1,439 @@
|
||||||
|
/**
|
||||||
|
* 지역검색, 사업검색, 좌표검색
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getGuList() {
|
||||||
|
var sub_cd = $("#cmb_sido").val().substring(0, 4);
|
||||||
|
|
||||||
|
var params = new Object();
|
||||||
|
params.do_cd = sub_cd;
|
||||||
|
|
||||||
|
$("#cmb_gungu").load("/map/getGugun.do", params);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDongList() {
|
||||||
|
var sub_cd = $("#cmb_gungu").val().substring(0, 4);
|
||||||
|
|
||||||
|
var params = new Object();
|
||||||
|
params.gungu_cd = sub_cd;
|
||||||
|
|
||||||
|
$("#cmb_dong").load("/map/getDong.do", params);
|
||||||
|
}
|
||||||
|
|
||||||
|
var waitWin;
|
||||||
|
function openWaitWin() {
|
||||||
|
var leftVal = (screen.availWidth / 2) - 100;
|
||||||
|
var topVal = (screen.availHeight / 2) - 100;
|
||||||
|
waitWin = window.open("/map/mapWait.do", 'waitWin', 'scrollbars=no,titlebar=no,width=300,height=130,left=' + leftVal + ',top=' + topVal, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeWaitWin() {
|
||||||
|
if (waitWin != null) {
|
||||||
|
waitWin.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parent.waitWin != null) {
|
||||||
|
parent.waitWin.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parent.parent.waitWin != null) {
|
||||||
|
parent.parent.waitWin.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################### #####################
|
||||||
|
// ##################### 기존소스 #####################
|
||||||
|
// ########################### #####################
|
||||||
|
/** 시추공검색 실행 * */
|
||||||
|
function onSichCheck() {
|
||||||
|
var bound;
|
||||||
|
// if(searchSichuForm.areaSearch.checked == false){
|
||||||
|
// openWaitWin();
|
||||||
|
openWaitWin();
|
||||||
|
|
||||||
|
/** 전국검색 * */
|
||||||
|
var sido = $("#cmb_sido").val();
|
||||||
|
var gugun = $("#cmb_gungu").val();
|
||||||
|
var dong = $("#cmb_dong").val();
|
||||||
|
// alert(gugun);
|
||||||
|
|
||||||
|
searchSichuForm.sido.value = sido;
|
||||||
|
searchSichuForm.gugun.value = gugun;
|
||||||
|
searchSichuForm.dong.value = dong;
|
||||||
|
|
||||||
|
if (sido != "all") {
|
||||||
|
bound = sido.split("^");
|
||||||
|
|
||||||
|
searchSichuForm.minx.value = bound[1];
|
||||||
|
searchSichuForm.maxx.value = bound[2];
|
||||||
|
searchSichuForm.miny.value = bound[3];
|
||||||
|
searchSichuForm.maxy.value = bound[4];
|
||||||
|
|
||||||
|
if (gugun != "all") {
|
||||||
|
bound = gugun.split("^");
|
||||||
|
|
||||||
|
searchSichuForm.minx.value = bound[1];
|
||||||
|
searchSichuForm.maxx.value = bound[2];
|
||||||
|
searchSichuForm.miny.value = bound[3];
|
||||||
|
searchSichuForm.maxy.value = bound[4];
|
||||||
|
|
||||||
|
if (dong != "all") {
|
||||||
|
bound = dong.split("^");
|
||||||
|
|
||||||
|
searchSichuForm.minx.value = bound[1];
|
||||||
|
searchSichuForm.maxx.value = bound[2];
|
||||||
|
searchSichuForm.miny.value = bound[3];
|
||||||
|
searchSichuForm.maxy.value = bound[4];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 영역검색 * */
|
||||||
|
searchSichuForm.isArea.value = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 사업검색 실행 * */
|
||||||
|
function onSaupCheck() {
|
||||||
|
openWaitWin();
|
||||||
|
searchSaupForm.sDate.value = yearFrame2.yearForm.startDate.value;
|
||||||
|
searchSaupForm.eDate.value = yearFrame2.yearForm.endDate.value;
|
||||||
|
|
||||||
|
}
|
||||||
|
function onSaupCheck_nosession() {
|
||||||
|
openWaitWin();
|
||||||
|
searchSaupForm.sDate.value = yearFrame2.yearForm.startDate.value;
|
||||||
|
searchSaupForm.eDate.value = yearFrame2.yearForm.endDate.value;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function onLocateCheck() {
|
||||||
|
openWaitWin();
|
||||||
|
}
|
||||||
|
// 좌표검색 클릭시
|
||||||
|
function resultxyForm() {
|
||||||
|
var f = searchLocateForm;
|
||||||
|
|
||||||
|
if (f.tawon.value == 0) {
|
||||||
|
alert("타원체를 선택해주세요");
|
||||||
|
f.tawon.focus();
|
||||||
|
return;
|
||||||
|
} else if (f.tuyung.value == 0) {
|
||||||
|
alert("투영방법을 선택해주세요");
|
||||||
|
f.tawon.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (f.tuyung.value == 1) {
|
||||||
|
if (searchLocateForm.doo.value == "") {
|
||||||
|
alert("경도 좌표값을 입력해 주십시요");
|
||||||
|
f.doo.focus();
|
||||||
|
} else if (searchLocateForm.doo2.value == "") {
|
||||||
|
alert("위도 좌표값을 입력해 주십시요");
|
||||||
|
f.doo2.focus();
|
||||||
|
} else {
|
||||||
|
if (f.tuyung.value == 3) {
|
||||||
|
calculate();
|
||||||
|
}
|
||||||
|
openWaitWin();
|
||||||
|
|
||||||
|
f.action = "/map/coordSearch.do";
|
||||||
|
f.target = "ResultLocateFrame"
|
||||||
|
f.submit();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (searchLocateForm.tmx.value == "") {
|
||||||
|
alert("X 좌표값을 입력해 주십시요");
|
||||||
|
f.tmx.focus();
|
||||||
|
} else if (searchLocateForm.tmy.value == "") {
|
||||||
|
alert("Y 좌표값을 입력해 주십시요");
|
||||||
|
f.tmy.focus();
|
||||||
|
} else {
|
||||||
|
if (f.tuyung.value == 3) {
|
||||||
|
calculate();
|
||||||
|
}
|
||||||
|
openWaitWin();
|
||||||
|
|
||||||
|
f.action = "/map/coordSearch.do";
|
||||||
|
f.target = "ResultLocateFrame"
|
||||||
|
f.submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/** 페이지이동 * */
|
||||||
|
function goPage(page) {
|
||||||
|
listForm.page.value = page;
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
function goPage_area(page) {
|
||||||
|
listForm.page.value = page;
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
function goPagePop(page) {
|
||||||
|
listForm.page.value = page;
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
function checkValue() {
|
||||||
|
|
||||||
|
}
|
||||||
|
/** 실내시험 체크여부 * */
|
||||||
|
function controlCheck() {
|
||||||
|
if (searchSaupForm.sample.checked == true) {
|
||||||
|
searchSaupForm.tree1.checked = true;
|
||||||
|
searchSaupForm.tree2.checked = true;
|
||||||
|
searchSaupForm.tree3.checked = true;
|
||||||
|
searchSaupForm.tree4.checked = true;
|
||||||
|
|
||||||
|
searchSaupForm.test1.checked = true;
|
||||||
|
searchSaupForm.tcr.checked = true;
|
||||||
|
searchSaupForm.dsf.checked = true;
|
||||||
|
searchSaupForm.slickenside.checked = true;
|
||||||
|
searchSaupForm.q.checked = true;
|
||||||
|
searchSaupForm.rmr.checked = true;
|
||||||
|
|
||||||
|
searchSaupForm.classification9.checked = true;
|
||||||
|
searchSaupForm.consolidation9.checked = true;
|
||||||
|
searchSaupForm.cbr.checked = true;
|
||||||
|
searchSaupForm.unconfined9.checked = true;
|
||||||
|
searchSaupForm.triaxialcu.checked = true;
|
||||||
|
// searchSaupForm.triaxialuu.checked = true;
|
||||||
|
|
||||||
|
searchSaupForm.test2.checked = true;
|
||||||
|
searchSaupForm.waterpressure.checked = true;
|
||||||
|
searchSaupForm.permeability.checked = true;
|
||||||
|
|
||||||
|
searchSaupForm.pointload.checked = true;
|
||||||
|
searchSaupForm.jointshear.checked = true;
|
||||||
|
searchSaupForm.rockuniaxial.checked = true;
|
||||||
|
searchSaupForm.rocktriaxial.checked = true;
|
||||||
|
} else {
|
||||||
|
searchSaupForm.tree1.checked = false;
|
||||||
|
searchSaupForm.tree2.checked = false;
|
||||||
|
searchSaupForm.tree3.checked = false;
|
||||||
|
searchSaupForm.tree4.checked = false;
|
||||||
|
|
||||||
|
searchSaupForm.test1.checked = false;
|
||||||
|
searchSaupForm.tcr.checked = false;
|
||||||
|
searchSaupForm.dsf.checked = false;
|
||||||
|
searchSaupForm.slickenside.checked = false;
|
||||||
|
searchSaupForm.q.checked = false;
|
||||||
|
searchSaupForm.rmr.checked = false;
|
||||||
|
|
||||||
|
searchSaupForm.classification9.checked = false;
|
||||||
|
searchSaupForm.consolidation9.checked = false;
|
||||||
|
searchSaupForm.cbr.checked = false;
|
||||||
|
searchSaupForm.unconfined9.checked = false;
|
||||||
|
searchSaupForm.triaxialcu.checked = false;
|
||||||
|
// searchSaupForm.triaxialuu.checked = false;
|
||||||
|
|
||||||
|
searchSaupForm.test2.checked = false;
|
||||||
|
searchSaupForm.waterpressure.checked = false;
|
||||||
|
searchSaupForm.permeability.checked = false;
|
||||||
|
|
||||||
|
searchSaupForm.pointload.checked = false;
|
||||||
|
searchSaupForm.jointshear.checked = false;
|
||||||
|
searchSaupForm.rockuniaxial.checked = false;
|
||||||
|
searchSaupForm.rocktriaxial.checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 영역검색 체크여부 * */
|
||||||
|
function areaCheck() {
|
||||||
|
if (searchSichuForm.areaSearch.checked == true) {
|
||||||
|
uscsFrame.cmb_uscs.disabled = false;
|
||||||
|
searchSichuForm.sample.disabled = false;
|
||||||
|
searchSichuForm.toDepth.disabled = false;
|
||||||
|
searchSichuForm.fromDepth.disabled = false;
|
||||||
|
searchSichuForm.fromN.disabled = false;
|
||||||
|
searchSichuForm.toN.disabled = false;
|
||||||
|
} else {
|
||||||
|
uscsFrame.cmb_uscs.disabled = true;
|
||||||
|
searchSichuForm.sample.disabled = true;
|
||||||
|
searchSichuForm.toDepth.disabled = true;
|
||||||
|
searchSichuForm.fromDepth.disabled = true;
|
||||||
|
searchSichuForm.fromN.disabled = true;
|
||||||
|
searchSichuForm.toN.disabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 주상도 * */
|
||||||
|
function viewJuSang(hcode) {
|
||||||
|
var jusang = window.open("/jusangdo/jusangdoNew.do?code=" + hcode, "_blank", "toolbars=no,menubar=no,addressbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,width=880,height=800", true);
|
||||||
|
jusang.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
function downloadMisc(hcode, aUUID, aKind) {
|
||||||
|
if (aKind == "dwg") {
|
||||||
|
hiddenFrame.location.href = "/body/sichudan/SichudanDWG.jsp?holecode=" + hcode + "&uuid=" + aUUID;
|
||||||
|
} else if (aKind == "xls") {
|
||||||
|
hiddenFrame.location.href = "/body/sichudan/SichudanXLS.jsp?holecode=" + hcode + "&uuid=" + aUUID;
|
||||||
|
} else {
|
||||||
|
var jusang = window.open("/body/sichudan/jusangdo_new.jsp?code=" + hcode, "_blank", "toolbars=no,menubar=no,addressbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,width=880,height=800", true);
|
||||||
|
jusang.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 사업상세정보 팝업창 * */
|
||||||
|
function openDetail(pcode) {
|
||||||
|
if (pcode != "") {
|
||||||
|
openWaitWin();
|
||||||
|
detailProject = window.open("/map/detailProject.do?pcode=" + pcode, 'detailProject', 'scrollbars=yes,titlebar=no,width=550,height=450,left=0,top=0', true);
|
||||||
|
//detailProject.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/** 사업상세정보 팝업창 * */
|
||||||
|
//function openDetailProject(pcode) {
|
||||||
|
// if (pcode != "") {
|
||||||
|
// openWaitWin();
|
||||||
|
// detailProject = window.open("/body/map/detailProject.jsp?pcode=" + pcode, 'detailProject', 'scrollbars=yes,titlebar=no,width=350,height=350,left=0,top=0', true);
|
||||||
|
// detailProject.focus();
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
/** 물리시험정보 팝업창 * */
|
||||||
|
function openDetailPhysicalInfo(pcode) {
|
||||||
|
if (pcode != "") {
|
||||||
|
opener.openWaitWin();
|
||||||
|
detailProject = window.open("/body/map/detailPhysicalInfo.jsp?pcode=" + pcode, 'detailPhysicalInfo', 'scrollbars=yes,titlebar=no,width=900,height=600,left=0,top=0', true);
|
||||||
|
detailProject.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* 사업검색 수정 */
|
||||||
|
function openDetailparam(pcode, popupParam) {
|
||||||
|
if (pcode != "") {
|
||||||
|
openWaitWin();
|
||||||
|
detailProject = window.open("/body/map/detailProjectsaup.jsp?pcode=" + pcode + "&popupParam=" + popupParam, 'detailProject', 'scrollbars=yes,titlebar=no,width=550,height=450,left=0,top=0', true);
|
||||||
|
detailProject.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* 좌표검색 */
|
||||||
|
function openDetailxy(pcode, hole_code) {
|
||||||
|
if (pcode != "") {
|
||||||
|
var tmxTemp = document.listForm.tmxTemp.value;
|
||||||
|
var tmyTemp = document.listForm.tmyTemp.value;
|
||||||
|
|
||||||
|
openWaitWin();
|
||||||
|
detailProject = window.open("/map/detailProject.do?pcode=" + pcode + "&tmxTemp=" + tmxTemp + "&tmyTemp=" + tmyTemp + "&holeCode=" + hole_code, 'detailProject', 'scrollbars=yes,titlebar=no,width=550,height=450,left=0,top=0', true);
|
||||||
|
detailProject.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 대표층분포 검색 * */
|
||||||
|
function openUscs() {
|
||||||
|
var areaRect = parent.GeoInfo2005.OnGetAreaBound.split("^");
|
||||||
|
var minx = areaRect[0];
|
||||||
|
var maxx = areaRect[1];
|
||||||
|
var miny = areaRect[2];
|
||||||
|
var maxy = areaRect[3];
|
||||||
|
|
||||||
|
if (minx == 0 || minx == null) {
|
||||||
|
alert('영역을 먼저 설정하세요');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
parent.GeoInfo2005.OnDisplayClassColor();
|
||||||
|
uscsWin = window.open("/body/map/uscs.html", 'uscsWin', 'scrollbars=no,titlebar=no,width=228,height=513,left=0,top=0', true);
|
||||||
|
uscsWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 정보분석 * */
|
||||||
|
function WebBaseOrder(str) {
|
||||||
|
// 통계처리
|
||||||
|
if (str == 1) {
|
||||||
|
var areaRect = parent.GeoInfo2005.OnGetAreaBound.split("^");
|
||||||
|
var x1 = areaRect[0];
|
||||||
|
var x2 = areaRect[1];
|
||||||
|
var y1 = areaRect[2];
|
||||||
|
var y2 = areaRect[3];
|
||||||
|
|
||||||
|
if (x1 == 0 || x2 == null) {
|
||||||
|
alert('영역을 먼저 설정하세요');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var vwidth = screen.width - 695;
|
||||||
|
orderWin1 = window.open("/body/Web_Based_Order/Search_Hole.jsp?sel=" + str + "&x1=" + x1 + "&y1=" + y1 + "&x2=" + x2 + "&y2=" + y2, 'orderWin1', 'scrollbars=auto,titlebar=no,width=687,height=590,left=' + vwidth + ',top=0', true);
|
||||||
|
orderWin1.focus();
|
||||||
|
}
|
||||||
|
// 설계정수
|
||||||
|
else {
|
||||||
|
var vwidth = screen.width - 575;
|
||||||
|
orderWin2 = window.open("/body/Web_Based_Order/Design/select_fnum.htm", 'orderWin2', 'scrollbars=auto,titlebar=no,width=570,height=700,left=' + vwidth + ',top=0', true);
|
||||||
|
orderWin2.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function getComList() {
|
||||||
|
searchSaupForm.com_class.value = comFrame.cmb_com.value;
|
||||||
|
// alert(searchSichuForm.com_class.value);
|
||||||
|
}
|
||||||
|
function getCalsList() {
|
||||||
|
searchSaupForm.lclass.value = classFrame.cmb_class.value;
|
||||||
|
}
|
||||||
|
// utm->degree
|
||||||
|
function calculate() {
|
||||||
|
var f = searchLocateForm;
|
||||||
|
var ll = UTMtoLL(f.tmx.value, f.tmy.value, 52);
|
||||||
|
var long = Math.round(ll[0] * 1000000) / 1000000;
|
||||||
|
var lat = Math.round(ll[1] * 1000000) / 1000000;
|
||||||
|
f.long.value = long;
|
||||||
|
f.lat.value = lat;
|
||||||
|
|
||||||
|
var long_deg = Math.floor(long);
|
||||||
|
if (long < 0)
|
||||||
|
long_deg = Math.floor(long) + 1;
|
||||||
|
var long_min = Math.floor((long - long_deg) * 60);
|
||||||
|
if (long < 0)
|
||||||
|
long_min = Math.floor((long - long_deg) * 60 + 1) * -1;
|
||||||
|
var long_sec = Math.round((((long - long_deg) * 60) - Math.floor(((long - long_deg) * 60))) * 60 * 1000) / 1000;
|
||||||
|
if (long < 0)
|
||||||
|
long_sec = Math.round((((long - long_deg) * 60) - Math.floor(((long - long_deg) * 60 + 1))) * 60 * 1000) / 1000 * -1;
|
||||||
|
|
||||||
|
var doo = long_deg;
|
||||||
|
var bun = long_min;
|
||||||
|
var cho = long_sec;
|
||||||
|
|
||||||
|
var lat_deg = Math.floor(lat);
|
||||||
|
if (lat < 0)
|
||||||
|
lat_deg = Math.floor(lat) + 1;
|
||||||
|
var lat_min = Math.floor((lat - lat_deg) * 60);
|
||||||
|
if (lat < 0)
|
||||||
|
lat_min = Math.floor((lat - lat_deg) * 60 + 1) * -1;
|
||||||
|
var lat_sec = Math.round((((lat - lat_deg) * 60) - Math.floor(((lat - lat_deg) * 60))) * 60 * 10000) / 10000;
|
||||||
|
if (lat < 0)
|
||||||
|
lat_sec = Math.round((((lat - lat_deg) * 60) - Math.floor(((lat - lat_deg) * 60 + 1))) * 60 * 1000) / 1000 * -1;
|
||||||
|
|
||||||
|
var doo2 = lat_deg;
|
||||||
|
var bun2 = lat_min;
|
||||||
|
var cho2 = lat_sec;
|
||||||
|
|
||||||
|
}
|
||||||
|
function UTMtoLL(f, f1, j) {
|
||||||
|
var d = 0.99960000000000004;
|
||||||
|
var d1 = 6378137;
|
||||||
|
var d2 = 0.0066943799999999998;
|
||||||
|
|
||||||
|
var d4 = (1 - Math.sqrt(1 - d2)) / (1 + Math.sqrt(1 - d2));
|
||||||
|
var d15 = f1 - 500000;
|
||||||
|
var d16 = f;
|
||||||
|
var d11 = ((j - 1) * 6 - 180) + 3;
|
||||||
|
|
||||||
|
var d3 = d2 / (1 - d2);
|
||||||
|
var d10 = d16 / d;
|
||||||
|
var d12 = d10 / (d1 * (1 - d2 / 4 - (3 * d2 * d2) / 64 - (5 * Math.pow(d2, 3)) / 256));
|
||||||
|
var d14 = d12 + ((3 * d4) / 2 - (27 * Math.pow(d4, 3)) / 32) * Math.sin(2 * d12) + ((21 * d4 * d4) / 16 - (55 * Math.pow(d4, 4)) / 32) * Math.sin(4 * d12) + ((151 * Math.pow(d4, 3)) / 96) * Math.sin(6 * d12);
|
||||||
|
var d13 = d14 * 180 / Math.PI;
|
||||||
|
var d5 = d1 / Math.sqrt(1 - d2 * Math.sin(d14) * Math.sin(d14));
|
||||||
|
var d6 = Math.tan(d14) * Math.tan(d14);
|
||||||
|
var d7 = d3 * Math.cos(d14) * Math.cos(d14);
|
||||||
|
var d8 = (d1 * (1 - d2)) / Math.pow(1 - d2 * Math.sin(d14) * Math.sin(d14), 1.5);
|
||||||
|
|
||||||
|
var d9 = d15 / (d5 * d);
|
||||||
|
var d17 = d14 - ((d5 * Math.tan(d14)) / d8) * (((d9 * d9) / 2 - (((5 + 3 * d6 + 10 * d7) - 4 * d7 * d7 - 9 * d3) * Math.pow(d9, 4)) / 24) + (((61 + 90 * d6 + 298 * d7 + 45 * d6 * d6) - 252 * d3 - 3 * d7 * d7) * Math.pow(d9, 6)) / 720);
|
||||||
|
d17 = d17 * 180 / Math.PI;
|
||||||
|
var d18 = ((d9 - ((1 + 2 * d6 + d7) * Math.pow(d9, 3)) / 6) + (((((5 - 2 * d7) + 28 * d6) - 3 * d7 * d7) + 8 * d3 + 24 * d6 * d6) * Math.pow(d9, 5)) / 120) / Math.cos(d14);
|
||||||
|
d18 = d11 + d18 * 180 / Math.PI;
|
||||||
|
return [ d18, d17 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
function openDetailSubsidence(sagoNo){
|
||||||
|
if(sagoNo != ""){
|
||||||
|
detailSubsidence = window.open("/map/detailSubsidenceInfo.do?sagoNo=" + sagoNo, 'detailSubsidence', 'scrollbars=yes,titlebar=no,width=550,height=450,left=0,top=0', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,400 @@
|
||||||
|
// ============================================================================================
|
||||||
|
// 정보 열람 기능 관련
|
||||||
|
// ============================================================================================
|
||||||
|
function showSichudan() {
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
if (codes == "") {
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sichuWin = window.open("/map/sichudanNew.do?code=" + codes, "sichuWin", "scrollbars=no,titlebar=no,width=1024,height=740,left=0,top=0", true);
|
||||||
|
sichuWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 시추주상도
|
||||||
|
function showJusangdo() {
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
if (codes == "") {
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var spCode = codes.split(",");
|
||||||
|
var jusang = window.open("/jusangdo/jusangdoNew.do?code=" + spCode, "_blank", "toolbars=no,menubar=no,addressbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,width=880,height=800", true);
|
||||||
|
jusang.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
// dhlee 시추주상도
|
||||||
|
function showJusangdoSichu(spCode) {
|
||||||
|
var jusang = window.open("/jusangdo/jusangdoNew.do?code=" + spCode, "_blank", "toolbars=no,menubar=no,addressbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,width=880,height=800", true);
|
||||||
|
jusang.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 정보보기
|
||||||
|
function showSichuInfo() {
|
||||||
|
var sichuInfo = getSelectAreaInfo2();
|
||||||
|
if (sichuInfo == null || sichuInfo == undefined) {
|
||||||
|
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
if (codes != "") {
|
||||||
|
|
||||||
|
sichuInfo = "";
|
||||||
|
var values = codes.split(",");
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
sichuInfo = sichuInfo + "" + values[i] + "";
|
||||||
|
|
||||||
|
if (i != values.length - 1) {
|
||||||
|
sichuInfo = sichuInfo + ","
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
openWaitWin();
|
||||||
|
var detailSichu = window.open("/map/detailSichuDownCh.do?areaHcode="+sichuInfo, 'detailSichu', 'scrollbars=yes,titlebar=no,width=1024,height=740,left=300,top=0', true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
openWaitWin();
|
||||||
|
|
||||||
|
var selectHolde = HOLE_SELECT.addFeatures;
|
||||||
|
var featuresHole = "";
|
||||||
|
for(var i = 0; i<HOLE_SELECT.features.length; i++ ){
|
||||||
|
if(i == 0){
|
||||||
|
featuresHole = HOLE_SELECT.features[i].attributes.CODE;
|
||||||
|
}else{
|
||||||
|
featuresHole += ","+HOLE_SELECT.features[i].attributes.CODE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var detailSichu = window.open("/map/detailSichuS.do?areaHcode="+featuresHole+"&"+sichuInfo, 'detailSichu', 'scrollbars=yes,titlebar=no,width=685,height=285,left=300,top=0', true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//정보보기 누를 때, 사업별 시추공 상세정보가 나타나도록 한다.
|
||||||
|
function showSichuInfoDetail() {
|
||||||
|
var sichuInfo = getSelectAreaInfo2();
|
||||||
|
if (sichuInfo == null || sichuInfo == undefined) {
|
||||||
|
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
|
||||||
|
if (codes != "") {
|
||||||
|
|
||||||
|
sichuInfo = "";
|
||||||
|
var values = codes.split(",");
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
sichuInfo = sichuInfo + "" + values[i] + "";
|
||||||
|
|
||||||
|
if (i != values.length - 1) {
|
||||||
|
sichuInfo = sichuInfo + ","
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const arrSichuInfoComma = String(sichuInfo).split(',');
|
||||||
|
const regex = /([a-zA-Z]+\d+).*/;
|
||||||
|
let foundProjectCode = null;
|
||||||
|
let isMultipleProject = false;
|
||||||
|
for(i = 0; i < arrSichuInfoComma.length; i++) {
|
||||||
|
const found = arrSichuInfoComma[i].match(regex);
|
||||||
|
if( found && found.length === 2 ) {
|
||||||
|
if( foundProjectCode != null && foundProjectCode !== found[1] ) {
|
||||||
|
isMultipleProject = true;
|
||||||
|
}
|
||||||
|
foundProjectCode = found[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( popupDataOpen && foundProjectCode ) {
|
||||||
|
if( isMultipleProject ) {
|
||||||
|
alert('가장 마지막에 선택된 하나의 프로젝트만 조회됩니다.');
|
||||||
|
}
|
||||||
|
popupDataOpen(foundProjectCode);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
openWaitWin();
|
||||||
|
|
||||||
|
var selectHolde = HOLE_SELECT.addFeatures;
|
||||||
|
var featuresHole = "";
|
||||||
|
for(var i = 0; i<HOLE_SELECT.features.length; i++ ){
|
||||||
|
if(i == 0){
|
||||||
|
featuresHole = HOLE_SELECT.features[i].attributes.CODE;
|
||||||
|
}else{
|
||||||
|
featuresHole += ","+HOLE_SELECT.features[i].attributes.CODE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var detailSichu = window.open("/map/detailSichuS.do?areaHcode="+featuresHole+"&"+sichuInfo, 'detailSichu', 'scrollbars=yes,titlebar=no,width=685,height=285,left=300,top=0', true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSearchJiban() {
|
||||||
|
var sichuInfo = getSelectAreaInfo();
|
||||||
|
|
||||||
|
openWaitWin();
|
||||||
|
var detailSichu = window.open("/map/CmModelViewerEx.do?modelName=A02&hjdCde=1111000000", 'detailSichu', 'scrollbars=yes,titlebar=no,width=1400,height=760,top=0', true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
//시추공 다운로드
|
||||||
|
function showSichuDownload() {
|
||||||
|
|
||||||
|
var sichuInfo = getSelectAreaInfo();
|
||||||
|
var sichuValue = 0;
|
||||||
|
|
||||||
|
// 개별 시추공 선택일 경우,
|
||||||
|
if (sichuInfo == null || sichuInfo == undefined) {
|
||||||
|
var codes = getSelectHoleInfo();
|
||||||
|
var pwidth = 350;
|
||||||
|
var pheight = 140;
|
||||||
|
var scrollYN = 'no';
|
||||||
|
var resizeYN = 'no';
|
||||||
|
|
||||||
|
var winL = (screen.width-pwidth)/2;
|
||||||
|
var winT = (screen.height-pheight)/2;
|
||||||
|
var spec = 'toolbar=no,'; // 도구메뉴
|
||||||
|
spec += 'status=no,'; // 상태바
|
||||||
|
spec += 'location=no,'; // 주소관련메뉴
|
||||||
|
spec += 'height='+pheight+','; // 높이
|
||||||
|
spec += 'width='+pwidth+','; // 너비
|
||||||
|
spec += 'top='+winT+','; // 세로위치
|
||||||
|
spec += 'left='+winL+','; // 가로위치
|
||||||
|
spec += 'scrollbars='+(scrollYN == undefined ? "no" : scrollYN)+','; // 스크롤바 여부(기본)
|
||||||
|
spec += 'resizable='+(resizeYN == undefined ? "no" : resizeYN); // 창크기조정 여부
|
||||||
|
|
||||||
|
if (codes != "") {
|
||||||
|
|
||||||
|
sichuInfo = "";
|
||||||
|
var values = codes.split(",");
|
||||||
|
|
||||||
|
//if( values.length > 50 ){
|
||||||
|
// alert("최대 50개까지의 시추공 선택이 가능합니다. ");
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
|
||||||
|
for (var i = 0; i < values.length; i++) {
|
||||||
|
sichuInfo = sichuInfo + "" + values[i] + "";
|
||||||
|
|
||||||
|
if (i != values.length - 1) {
|
||||||
|
sichuInfo = sichuInfo + ","
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sichuValue = values.length;
|
||||||
|
var url = "/map/sichuDownload.do?hcode=" + sichuInfo + "&sichuValue=" + sichuValue ;
|
||||||
|
var detailSichu = window.open(url,'sichuDownload', spec,true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 영역단위의 선택일 경우,
|
||||||
|
} else {
|
||||||
|
var url = "/map/sichuDownload.do?" + sichuInfo + "&sichuValue=" + sichuValue;
|
||||||
|
var detailSichu = window.open(url ,'sichuDownload','scrollbars=yes,titlebar=no,width=350,height=140,left=300,top=0',true);
|
||||||
|
detailSichu.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3차원
|
||||||
|
function web3dPopup() {
|
||||||
|
var web3d = window.open('/body/map/web3d/web3d.html', 'web3d', 'scrollbars=yes,width=1280,height=1024,left=0,top=0', true);
|
||||||
|
web3d.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
function show3dProject() {
|
||||||
|
|
||||||
|
if (document.search_frame.location.href.indexOf("popupSimulation") > -1) {
|
||||||
|
document.search_frame.location.href = "/map/mapLeft.do";
|
||||||
|
} else {
|
||||||
|
document.search_frame.location.href = "/map/popupSimulation.do";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================================================================
|
||||||
|
// 지도 제어 기능 관련
|
||||||
|
// ============================================================================================
|
||||||
|
// 선택
|
||||||
|
function onSearchHole() {
|
||||||
|
if (isSelectHole()) {
|
||||||
|
offSelectHole();
|
||||||
|
} else {
|
||||||
|
onSelectHole();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 영역선택
|
||||||
|
function onSearchArea() {
|
||||||
|
if (isSelectArea()) {
|
||||||
|
offSelectArea();
|
||||||
|
} else {
|
||||||
|
onSelectArea();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//사업 선택
|
||||||
|
function onSearchProject() {
|
||||||
|
if(isSelectProject()) {
|
||||||
|
offSelectProject();
|
||||||
|
} else {
|
||||||
|
onSelectProject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 영역검색
|
||||||
|
function onAreaSearch() {
|
||||||
|
|
||||||
|
var sichuInfo = getSelectAreaInfo();
|
||||||
|
if (sichuInfo == null || sichuInfo == undefined) {
|
||||||
|
alert("시추공을 선택해주세요!!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var polygonType;
|
||||||
|
var sichuPolyon = "";
|
||||||
|
if($('#circle').is(':checked')){
|
||||||
|
polygonType = 'circle';
|
||||||
|
}else if($('#polygon').is(':checked')){
|
||||||
|
polygonType = 'polygon';
|
||||||
|
var polygonSize = HOLE_AREA.features[0].geometry.components[0].components.length;
|
||||||
|
/*var polygoncomponents = HOLE_AREA.features[0].geometry.components[0].components;*/
|
||||||
|
var polygoncomponents = HOLE_AREA.features[0].geometry.components[0].transform("EPSG:3857", "EPSG:5186");
|
||||||
|
sichuPolyon = "&pSize="+polygonSize;
|
||||||
|
for(var i =0; i < polygonSize; i++){
|
||||||
|
var componentsX = polygoncomponents.components[i].x;
|
||||||
|
var componentsY = polygoncomponents.components[i].y;
|
||||||
|
sichuPolyon += "&pX"+i+"="+componentsX+"&pY"+i+"="+componentsY;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
polygonType = 'circle';
|
||||||
|
}
|
||||||
|
|
||||||
|
var sichuWin = window.open("/map/detailSichuDownCh.do?" +"areaHcode="+areaHcode(), "sichuWin", "scrollbars=no,titlebar=no,width=1024,height=740,left=0,top=0", true);
|
||||||
|
/*var sichuWin = window.open("/map/sichuInfoMini.do?" + sichuInfo+"&polygonType="+polygonType+sichuPolyon, "sichuWin", "scrollbars=no,titlebar=no,width=1024,height=740,left=0,top=0", true);*/
|
||||||
|
sichuWin.focus();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 거리측정
|
||||||
|
function onCalDistance() {
|
||||||
|
if (isMeasurePath()) {
|
||||||
|
offMeasurePath();
|
||||||
|
} else {
|
||||||
|
onMeasurePath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 면적측정
|
||||||
|
function onCalArea() {
|
||||||
|
if (isMeasureArea()) {
|
||||||
|
offMeasureArea();
|
||||||
|
} else {
|
||||||
|
onMeasureArea();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 인덱스맵
|
||||||
|
function onIndexMap() {
|
||||||
|
if (isOverviewMap()) {
|
||||||
|
offOverviewMap();
|
||||||
|
} else {
|
||||||
|
onOverviewMap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//지반모델 선택
|
||||||
|
function onSearchJiban() {
|
||||||
|
if (isSelectJiban()) {
|
||||||
|
offSelectJiban();
|
||||||
|
removeTooltip();
|
||||||
|
} else {
|
||||||
|
onSelectJiban();
|
||||||
|
removeTooltip();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//test
|
||||||
|
function jibanModelDownload() {
|
||||||
|
|
||||||
|
if(HOLE_SELECT2.features[0] == null || HOLE_SELECT2.features[0] =='undefined'){
|
||||||
|
alert("지반모델을 선택해주세요!!");
|
||||||
|
}else{
|
||||||
|
var sichuWin = window.open("/map/geotechnicalDown.do?" +"hjdCde="+HOLE_SELECT2.features[0].attributes.CODE, "sichuWin", 'height=' + screen.height + ',width=' + screen.width + 'fullscreen=yes', true);
|
||||||
|
/*var sichuWin = window.open("/map/geotechnicalDown.do?" +"hjdCde="+"1120000000", "sichuWin", 'height=' + screen.height + ',width=' + screen.width + 'fullscreen=yes', true);*/
|
||||||
|
/*var sichuWin = window.open("/map/sichuInfoMini.do?" + sichuInfo+"&polygonType="+polygonType+sichuPolyon, "sichuWin", "scrollbars=no,titlebar=no,width=1024,height=740,left=0,top=0", true);*/
|
||||||
|
sichuWin.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 범례보기
|
||||||
|
function onLegendInfo() {
|
||||||
|
var vwidth = screen.availWidth - 300;
|
||||||
|
var legendWin = window.open("/map/layerControl.do", "legendWin", "scrollbars=yes,titlebar=no,width=100,height=380,left=" + vwidth + ",top=20", true);
|
||||||
|
legendWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================================================================
|
||||||
|
// 프레임 디자인 관련
|
||||||
|
// ============================================================================================
|
||||||
|
// -------------------------------
|
||||||
|
// 지도 페이지 창 조정
|
||||||
|
// -------------------------------
|
||||||
|
function fullScreen() {
|
||||||
|
window.moveTo(0, 0);
|
||||||
|
window.resizeTo(screen.availWidth, screen.availHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------
|
||||||
|
// 지도 페이지 검색창 펴기/접기
|
||||||
|
// -------------------------------
|
||||||
|
function frameResize() {
|
||||||
|
if (document.all.arrow.name == "off") {
|
||||||
|
// 검색창 열기
|
||||||
|
document.all.search_frame.style.width = "220px";
|
||||||
|
document.all.search_frame.style.visibility = "visible";
|
||||||
|
|
||||||
|
document.all.arrow.name = "on";
|
||||||
|
document.all.arrow.src = "/images/map/arrow.png"
|
||||||
|
} else {
|
||||||
|
// 검색창 닫기
|
||||||
|
document.all.search_frame.style.width = 0;
|
||||||
|
document.all.search_frame.style.visibility = "hidden";
|
||||||
|
|
||||||
|
document.all.arrow.name = "off";
|
||||||
|
document.all.arrow.src = "/images/map/arrowb.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//액상화 위험지도
|
||||||
|
function showLiqInfo(sggCode,cls) {
|
||||||
|
openWaitWin();
|
||||||
|
var locationShow = window.open("/map/liqListView.do?sggCode="+sggCode+"&cls="+cls ,"locationShow","'scrollbars=yes,titlebar=no,width=750,height=750,top=0", true);0
|
||||||
|
locationShow.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//액상화 범례보기
|
||||||
|
function liqDownload(sggCode,cls) {
|
||||||
|
var vwidth = screen.availWidth - 300;
|
||||||
|
var liqWin = window.open("/map/liqMapControl.do?sggCode="+sggCode+"&cls="+cls, "liqWin", "scrollbars=yes,titlebar=no,width=100,height=380,left=" + vwidth + ",top=20", true);
liqWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,366 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* 지반정보 검색 결과관련 스크립트 2006-10-23 ljy
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
function openDetail(pcode) {
|
||||||
|
detailWin = window.open("detail.jsp?metadataId=" + pcode, 'detailWin', 'scrollbars=no,titlebar=no,width=720,height=100', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 선택한 데이터리스트 다운로드 * */
|
||||||
|
function downloadData(totalCnt) {
|
||||||
|
var mId = "";
|
||||||
|
var tmp;
|
||||||
|
var projectName;
|
||||||
|
var fName = "";
|
||||||
|
var projectTmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
tmp = listForm.selectData.value.split(",");
|
||||||
|
projectTmp = listForm.selectProject.value.split(",");
|
||||||
|
mId = tmp[0];
|
||||||
|
fName = tmp[1];
|
||||||
|
projectName = projectTmp[0];
|
||||||
|
// download(mId, fName, userId);
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
projectTmp = listForm.selectProject[i].value.split(",");
|
||||||
|
if (mId == "") {
|
||||||
|
mId = tmp[0];
|
||||||
|
fName = tmp[1];
|
||||||
|
projectName = projectTmp[0];
|
||||||
|
} else {
|
||||||
|
mId = mId + "," + tmp[0];
|
||||||
|
fName = fName + "," + tmp[1];
|
||||||
|
projectName = projectName + "," + projectTmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mId == "") {
|
||||||
|
alert("다운로드 할 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
var left = (screen.width) / 2 - 300;
|
||||||
|
var top = (screen.height) / 2 - 250;
|
||||||
|
// 다운로드 목적 추가(수정)
|
||||||
|
downloadWin = window.open("/map/downloadPurpose.do?mId=" + mId +"&fName=" + fName + "&projectName=" + projectName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=no,width=793,height=600,left=" + left + ",top=" + top);
|
||||||
|
downloadWin.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 데이터 다운로드(개별) * */
|
||||||
|
/*function download(mId, fName) {
|
||||||
|
var left = (screen.width) / 2 - 300;
|
||||||
|
var top = (screen.height) / 2 - 250;
|
||||||
|
// 다운로드 목적 추가(수정)
|
||||||
|
downloadWin = window.open("/map/downloadPurpose.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=no,width=793,height=600,left=" + left + ",top=" + top);
|
||||||
|
downloadWin.focus();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// 2019-06-07. 유통자료 다운로드 수정
|
||||||
|
function download(mId, fName) {
|
||||||
|
var left = (screen.width) / 2 - 300;
|
||||||
|
var top = (screen.height) / 2 - 250;
|
||||||
|
// 다운로드 목적 추가(수정)
|
||||||
|
downloadWin = window.open("/map/downloadPurposeNew.do?mId=" + mId + "&fName=" + fName + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=no,width=793,height=600,left=" + left + ",top=" + top);
|
||||||
|
downloadWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 데이터 전체 선택 * */
|
||||||
|
function allSelect(totalCnt) {
|
||||||
|
|
||||||
|
totalCnt = listForm.selectData.length;
|
||||||
|
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
listForm.selectData.checked = true;
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
listForm.selectData[i].checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 데이터 전체 선택해제 * */
|
||||||
|
function allDeSelect(totalCnt) {
|
||||||
|
|
||||||
|
totalCnt = listForm.selectData.length;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
listForm.selectData.checked = false;
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
listForm.selectData[i].checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 미리보기 * */
|
||||||
|
function preView(mId) {
|
||||||
|
preViewWin = window.open("/map/preview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=484,height=520,left=0,top=0");
|
||||||
|
preViewWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 측선 좌표 미리보기 * */
|
||||||
|
function preView2(mId) {
|
||||||
|
preViewWin = window.open("/map/locationPreview.do?mId=" + mId, "preViewWin", "title=no,toolbar=no,scrollbars=no,width=850,height=850,left=0,top=0");
|
||||||
|
preViewWin.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 장바구니 담기 * */
|
||||||
|
function addCart(userId, totalCnt) {
|
||||||
|
var sido = listForm.sido.value;
|
||||||
|
var gugun = listForm.gugun.value;
|
||||||
|
var dong = listForm.dong.value;
|
||||||
|
// alert(sido);
|
||||||
|
var mId = "";
|
||||||
|
var tmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
if (listForm.selectData.checked) {
|
||||||
|
mId = listForm.selectData.value;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
if (mId == "") {
|
||||||
|
mId = tmp[0];
|
||||||
|
} else {
|
||||||
|
mId = mId + "^" + tmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mId == "") {
|
||||||
|
alert("장바구니에 담을 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
hiddenFrame.location.href = "/body/mypage/addcart.jsp?mId=" + mId + "&userId=" + userId + "&sido=" + sido + "&gugun=" + gugun + "&dong=" + dong;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 사업검색 장바구니
|
||||||
|
function addCart_sa(userId, totalCnt) {
|
||||||
|
var f = document.listForm;
|
||||||
|
|
||||||
|
var sDate = f.sDate.value;
|
||||||
|
var eDate = f.eDate.value;
|
||||||
|
var pname = f.pname.value;
|
||||||
|
var test1 = f.test1.value;
|
||||||
|
var tcr = f.tcr.value;
|
||||||
|
var dsf = f.dsf.value;
|
||||||
|
var slickenside = f.slickenside.value;
|
||||||
|
var q = f.q.value;
|
||||||
|
var rmr = f.rmr.value;
|
||||||
|
var classification9 = f.classification9.value;
|
||||||
|
var consolidation9 = f.consolidation9.value;
|
||||||
|
var cbr = f.cbr.value;
|
||||||
|
var unconfined9 = f.unconfined9.value;
|
||||||
|
var triaxialcu = f.triaxialcu.value;
|
||||||
|
var test2 = f.test2.value;
|
||||||
|
var waterpressure = f.waterpressure.value;
|
||||||
|
|
||||||
|
var permeability = f.permeability.value;
|
||||||
|
var pointload = f.pointload.value;
|
||||||
|
var jointshear = f.jointshear.value;
|
||||||
|
var rockuniaxial = f.rockuniaxial.value;
|
||||||
|
var rocktriaxial = f.rocktriaxial.value;
|
||||||
|
var andor = f.andor.value;
|
||||||
|
var com_class = f.com_class.value;
|
||||||
|
var lclass = f.lclass.value;
|
||||||
|
// alert(andor);
|
||||||
|
var mId = "";
|
||||||
|
var tmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
if (listForm.selectData.checked) {
|
||||||
|
mId = listForm.selectData.value;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
if (mId == "") {
|
||||||
|
mId = tmp[0];
|
||||||
|
} else {
|
||||||
|
mId = mId + "^" + tmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mId == "") {
|
||||||
|
alert("장바구니에 담을 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
hiddenFrame.location.href = "/body/mypage/addcart_sa.jsp?mId=" + mId + "&userId=" + userId + "&sDate=" + sDate + "&eDate=" + eDate + "&pname=" + pname + "&test1=" + test1 + "&tcr=" + tcr + "&dsf=" + dsf + "&slickenside=" + slickenside + "&q=" + q + "&classification9=" + classification9 + "&consolidation9=" + consolidation9 + "&cbr=" + cbr + "&unconfined9=" + unconfined9 + "&triaxialcu=" + triaxialcu + "&test2=" + test2 + "&waterpressure=" + waterpressure + "&permeability="
|
||||||
|
+ permeability + "&pointload=" + pointload + "&jointshear=" + jointshear + "&rockuniaxial=" + rockuniaxial + "&rocktriaxial=" + rocktriaxial + "&andor=" + andor + "&com_class=" + com_class + "&lclass=" + lclass;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// 영역검색 장바구니
|
||||||
|
function addCart_area(userId, totalCnt) {
|
||||||
|
var f = document.listForm;
|
||||||
|
var minx = f.minx.value;
|
||||||
|
var maxx = f.maxx.value;
|
||||||
|
var miny = f.miny.value;
|
||||||
|
var maxy = f.maxy.value;
|
||||||
|
// alert(andor);
|
||||||
|
var mId = "";
|
||||||
|
var tmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
if (listForm.selectData.checked) {
|
||||||
|
mId = listForm.selectData.value;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
if (mId == "") {
|
||||||
|
mId = tmp[0];
|
||||||
|
} else {
|
||||||
|
mId = mId + "^" + tmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mId == "") {
|
||||||
|
alert("장바구니에 담을 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
hiddenFrame.location.href = "/body/mypage/addcart_area.jsp?mId=" + mId + "&userId=" + userId + "&minx=" + minx + "&maxx=" + maxx + "&miny=" + miny + "&maxy=" + maxy;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//영역검색결과 장바구니 담기
|
||||||
|
function addCart_region(userId, totalCnt) {
|
||||||
|
var f = document.listForm;
|
||||||
|
var minx = f.minx.value;
|
||||||
|
var maxx = f.maxx.value;
|
||||||
|
var miny = f.miny.value;
|
||||||
|
var maxy = f.maxy.value;
|
||||||
|
// alert(andor);
|
||||||
|
var mId = "";
|
||||||
|
var tmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
if (listForm.selectData.checked) {
|
||||||
|
mId = listForm.selectData.value.split(",");
|
||||||
|
mId = mId[0];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
if (mId == "") {
|
||||||
|
mId = tmp[0];
|
||||||
|
} else {
|
||||||
|
mId = mId + "," + tmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mId == "") {
|
||||||
|
alert("장바구니에 담을 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
var checkUrl = "/map/checkProjectFileInfo.do?mId=" + mId;
|
||||||
|
var xhttp = new XMLHttpRequest();
|
||||||
|
xhttp.onreadystatechange = function() {
|
||||||
|
if (this.readyState == 4 && this.status == 200) {
|
||||||
|
var resultJson = JSON.parse(this.responseText);
|
||||||
|
var existInfo = resultJson[0].existInfo;
|
||||||
|
var notExistInfo = resultJson[0].notExistInfo;
|
||||||
|
var msg = "";
|
||||||
|
if(notExistInfo.cnt > 0){
|
||||||
|
var projectCodeArr = notExistInfo.projectCode.split("^");
|
||||||
|
var projectNameArr = notExistInfo.projectName.split("^");
|
||||||
|
for(var i=0; i<projectCodeArr.length; i++){
|
||||||
|
msg += "["+projectCodeArr[i]+"] "+projectNameArr[i]+"\r\n";
|
||||||
|
}
|
||||||
|
msg += "상기 프로젝트는 제공 데이터가 없습니다.\r\n계속 장바구니에 담겠습니까?";
|
||||||
|
}
|
||||||
|
if(confirm(msg)){
|
||||||
|
hiddenFrame.location.href = "/map/addcartRegion.do?mId=" + mId + "&userId=" + userId + "&minx=" + minx + "&maxx=" + maxx + "&miny=" + miny + "&maxy=" + maxy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhttp.open("GET", checkUrl, true);
|
||||||
|
xhttp.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 정보보기 장바구니
|
||||||
|
function addCart_down(userId, totalCnt) {
|
||||||
|
var f = document.listForm;
|
||||||
|
var areaHcode = f.areaHcode.value;
|
||||||
|
// alert(holeCode);
|
||||||
|
var mId = areaHcode.substr(0,5);
|
||||||
|
var selectCode = "";
|
||||||
|
var tmp;
|
||||||
|
if (totalCnt == 1) {
|
||||||
|
if (listForm.selectData.checked) {
|
||||||
|
selectCode = listForm.selectData.value.split(",");
|
||||||
|
selectCode = mId[0];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < listForm.selectData.length; i++) {
|
||||||
|
if (listForm.selectData[i].checked) {
|
||||||
|
tmp = listForm.selectData[i].value.split(",");
|
||||||
|
if (selectCode == "") {
|
||||||
|
selectCode = tmp[0];
|
||||||
|
} else {
|
||||||
|
selectCode = selectCode + "," + tmp[0];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var minx = f.minx.value;
|
||||||
|
var maxx = f.maxx.value;
|
||||||
|
var miny = f.miny.value;
|
||||||
|
var maxy = f.maxy.value;
|
||||||
|
|
||||||
|
if (mId == "") {
|
||||||
|
alert("장바구니에 담을 데이터를 선택하십시요");
|
||||||
|
} else {
|
||||||
|
hiddenFrame.location.href = "/map/addcartInfo.do?mId=" + mId + "&hcode=" + selectCode+"&areaHcode="+areaHcode
|
||||||
|
+ "&selectCode=" + selectCode+ "&minx=" + minx+ "&maxx=" + maxx+ "&miny=" + miny+ "&maxy=" + maxy + "&userId=" + userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/** 메타데이터 조회 * */
|
||||||
|
function openMetadata(mId) {
|
||||||
|
metadataWin = window.open("/map/metaDataView.do?mid=" + mId, "metadataWin", "title=no,toolbar=no,scrollbars=auto,width=600,height=600,left=0,top=0");
|
||||||
|
metadataWin.focus();
|
||||||
|
}
|
||||||
|
//일괄다운로드
|
||||||
|
function downloadSichu(userId){
|
||||||
|
var left = (screen.width)/2 -300;
|
||||||
|
var top = (screen.height)/2 -140;
|
||||||
|
|
||||||
|
var mid = new Array();
|
||||||
|
var fname = new Array();
|
||||||
|
var selectData = document.listForm.selectData;
|
||||||
|
for (i = 0; i < selectData.length; i++) {
|
||||||
|
var isChecked = selectData[i].checked;
|
||||||
|
if(isChecked){
|
||||||
|
var valueArr = (selectData[i].value).split(',');
|
||||||
|
mid.push(valueArr[0]);
|
||||||
|
fname.push(valueArr[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var midStr = "";
|
||||||
|
var fnameStr = "";
|
||||||
|
for(var i=0; i<mid.length; i++){
|
||||||
|
if(i+1 == mid.length){
|
||||||
|
midStr += mid[i];
|
||||||
|
fnameStr += fname[i];
|
||||||
|
}else{
|
||||||
|
midStr += mid[i]+"^";
|
||||||
|
fnameStr += fname[i]+"^";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
downloadWin = window.open("/map/downloadPurpose.do?mId=" + midStr + "&fName=" + fnameStr + "&folder=service", "downloadWin", "title=yes,toolbar=no,scrollbars=no,width=600,height=550,left=" + left + ",top=" + top);
|
||||||
|
downloadWin.focus();
|
||||||
|
/*if(downloadWin)
|
||||||
|
this.close();*/
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
[version]
|
||||||
|
signature="$CHICAGO$"
|
||||||
|
AdvancedINF=2.0
|
||||||
|
|
||||||
|
[Add.Code]
|
||||||
|
SichudanViewControl.ocx=SichudanViewControl.ocx
|
||||||
|
mfc42.dll=mfc42.dll
|
||||||
|
|
||||||
|
|
||||||
|
;need DLL
|
||||||
|
[mfc42.dll]
|
||||||
|
FileVersion=4,2,0,6256
|
||||||
|
hook=mfc42installer
|
||||||
|
|
||||||
|
[mfc42installer]
|
||||||
|
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
|
||||||
|
run=%EXTRACT_DIR%\mfc42.exe
|
||||||
|
|
||||||
|
[SichudanViewControl.ocx]
|
||||||
|
file-win32-x86=thiscab
|
||||||
|
clsid={C1FCC803-0250-4C0B-B077-9D0DA1477C5F}
|
||||||
|
FileVersion=3,0,0,4
|
||||||
|
RegisterServer=yes
|
||||||
|
;end of INF file
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
|
||||||
|
|
||||||
|
a:link
|
||||||
|
{
|
||||||
|
color:#3f3f3f;
|
||||||
|
text-decoration:none
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited
|
||||||
|
{
|
||||||
|
color:#3f3f3f;
|
||||||
|
text-decoration:none
|
||||||
|
}
|
||||||
|
|
||||||
|
a:active
|
||||||
|
{
|
||||||
|
color:#BCBCBC;
|
||||||
|
text-decoration:none
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover
|
||||||
|
{
|
||||||
|
color:#047FDE;
|
||||||
|
text-decoration:underline
|
||||||
|
}
|
||||||
|
|
||||||
|
font
|
||||||
|
{
|
||||||
|
font-size:9pt;
|
||||||
|
|
||||||
|
font-family:"µ¸¿ò"
|
||||||
|
}
|
||||||
|
|
||||||
|
td
|
||||||
|
{
|
||||||
|
font-size:9pt;
|
||||||
|
color:#454545;
|
||||||
|
line-height:18px;
|
||||||
|
font-family:"µ¸¿ò"
|
||||||
|
}
|
||||||
|
|
||||||
|
BODY
|
||||||
|
{
|
||||||
|
scrollbar-face-color:#ffffff;
|
||||||
|
scrollbar-shadow-color:#DEDEDE;
|
||||||
|
scrollbar-highlight-color:#CBCBCB;
|
||||||
|
scrollbar-3dlight-color:#EFEFEF;
|
||||||
|
scrollbar-darkshadow-color:#EFEFEF;
|
||||||
|
scrollbar-track-color:#EFEFEF;
|
||||||
|
scrollbar-arrow-color:#CBCBCB
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
BORDER-RIGHT: 1px solid;
|
||||||
|
BORDER-TOP: 1px solid;
|
||||||
|
BORDER-LEFT: 1px solid;
|
||||||
|
BORDER-BOTTOM: 1px solid;
|
||||||
|
FONT-SIZE: 9pt;
|
||||||
|
COLOR: #959595;
|
||||||
|
FONT-FAMILY: "µ¸¿ò";
|
||||||
|
BACKGROUND-COLOR: #F8F8F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input1 {
|
||||||
|
BORDER-RIGHT: 1px solid;
|
||||||
|
BORDER-TOP: 1px solid;
|
||||||
|
BORDER-LEFT: 1px solid;
|
||||||
|
BORDER-BOTTOM: 1px solid;
|
||||||
|
FONT-SIZE: 9pt;
|
||||||
|
COLOR: #535353;
|
||||||
|
BORDER-COLOR: #59A9B7;
|
||||||
|
FONT-FAMILY: "µ¸¿ò";
|
||||||
|
BACKGROUND-COLOR: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
color:#ffffff;
|
||||||
|
font-family : "µ¸¿ò";
|
||||||
|
font-size : 9pt;
|
||||||
|
color : #393939;
|
||||||
|
background-color : #FFFFFF;
|
||||||
|
onmouseover backgroundColor : #D4D4D4;
|
||||||
|
onmouseover backgroundColor : #F7F7F7;
|
||||||
|
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 791 B |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |