|
@@ -186,15 +186,36 @@ $(()=>{
|
|
|
if (searchType === '리스트') {
|
|
|
const $list = $('.list-content.list > li');
|
|
|
if (!$list.length) return;
|
|
|
+ const $activeTab = $('.list-tab .active');
|
|
|
+ const id = $activeTab.attr('id');
|
|
|
+ let type = id.replace("-tab", "");
|
|
|
+ if (type === 'intersection') type = 'intersectionCamera';
|
|
|
|
|
|
+ const markerArr = _MarkerHandle.findMarkerArr(type);
|
|
|
+ let showIdArr = [];
|
|
|
+ if (markerArr.length) {
|
|
|
+ showIdArr = markerArr.map((item)=>{
|
|
|
+ if (item.ADDR && item.ADDR.includes(searchText)) {
|
|
|
+ console.log(item);
|
|
|
+ if (type === 'intersectionCamera') {
|
|
|
+ return 'intersection-' + item.prop.ixr_id;
|
|
|
+ }
|
|
|
+ return type + '-' + item.ID;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
for (let ii = 0; ii < $list.length; ii++) {
|
|
|
const li = $list.eq(ii);
|
|
|
if ($(this).val().length === 0) {
|
|
|
li.css('display', 'block');
|
|
|
}
|
|
|
else {
|
|
|
- let text = $('.list-content.list > li').eq(ii).text().toLowerCase();
|
|
|
- if (text.includes(searchText.toLowerCase())) {
|
|
|
+ let text = li.text().toLowerCase();
|
|
|
+ const liId = li.attr('id');
|
|
|
+ if (showIdArr.includes(liId)){
|
|
|
+ li.css('display', 'block');
|
|
|
+ }
|
|
|
+ else if (text.includes(searchText.toLowerCase())) {
|
|
|
li.css('display', 'block');
|
|
|
}
|
|
|
else {
|
|
@@ -374,6 +395,7 @@ function getAtrd() {
|
|
|
getDataAsync("/api/traffic/atrd-vertex-all", "POST", null, null, (jsonData)=>{
|
|
|
if (jsonData && jsonData.length > 0) {
|
|
|
_AtrdMap = new Map();
|
|
|
+ console.log(jsonData);
|
|
|
jsonData.forEach((obj)=>{
|
|
|
obj.list.forEach((atrd)=>{
|
|
|
const key = atrd.atrd_id +'_' + atrd.drct_cd +'_' + obj.level;
|
|
@@ -405,6 +427,7 @@ function getAtrd() {
|
|
|
},
|
|
|
{}
|
|
|
);
|
|
|
+
|
|
|
for (let key in atrdList){
|
|
|
let list = jsonData[key];
|
|
|
if (list && list.length === 2) {
|
|
@@ -521,6 +544,9 @@ function getVertex() {
|
|
|
* @param AdownHillId 하행 ID
|
|
|
*/
|
|
|
function atrdClickEvent(AupHillId, AdownHillId) {
|
|
|
+ if (! _MarkerHandle.findMarkerArr('atrd').length) {
|
|
|
+ return alert('도로정보를 불러오는 중입니다.');
|
|
|
+ }
|
|
|
if (_MarkerHandle.selectedAtrd.length > 0) {
|
|
|
_MarkerHandle.selectedAtrd.forEach((atrdId)=>{
|
|
|
_MarkerHandle.findMarkerObj('atrd', atrdId).marker.setMap(null);
|
|
@@ -538,9 +564,7 @@ function atrdClickEvent(AupHillId, AdownHillId) {
|
|
|
const $selectLi = $('#atrd_' + AupHillId + "_" + AdownHillId);
|
|
|
$selectLi.addClass('click');
|
|
|
$selectLi.focus();
|
|
|
-
|
|
|
let level = getAtrdLevel(_Level);
|
|
|
-
|
|
|
let upHill = _MarkerHandle.findMarkerObj('atrd', AupHillId + '_0_' + level);
|
|
|
let downHill = _MarkerHandle.findMarkerObj('atrd', AdownHillId + '_1_' + level);
|
|
|
|
|
@@ -568,13 +592,14 @@ function getAtrdLevel(level) {
|
|
|
}
|
|
|
|
|
|
class MarkerObj {
|
|
|
- constructor({ID, NAME, X_CRDN, Y_CRDN, URL, TYPE, IMAGE, IMAGE_TYPE, DATA}) {
|
|
|
+ constructor({ID, NAME, X_CRDN, Y_CRDN, URL, TYPE, IMAGE, IMAGE_TYPE, DATA, ADDR}) {
|
|
|
this.ID = ID;
|
|
|
this.NAME = NAME;
|
|
|
this.X_CRDN = X_CRDN;
|
|
|
this.Y_CRDN = Y_CRDN;
|
|
|
this.URL = URL;
|
|
|
this.type = TYPE;
|
|
|
+ this.ADDR = ADDR;
|
|
|
this.marker = null;
|
|
|
this.infoWindow = null;
|
|
|
this.iwContent = null;
|
|
@@ -894,6 +919,7 @@ class TrafficObj {
|
|
|
this.infoWindow = null;
|
|
|
this.polyLine = null;
|
|
|
this.polyBackLine = null;
|
|
|
+ this.ADDR = obj.addr;
|
|
|
this.init();
|
|
|
}
|
|
|
|
|
@@ -1011,15 +1037,16 @@ class TbAtrdObj extends MarkerObj{
|
|
|
class TbCCtvObj extends MarkerObj{
|
|
|
constructor(obj) {
|
|
|
super({
|
|
|
- ID : obj.cctv_mngm_nmbr,
|
|
|
- NAME : obj.istl_lctn_nm,
|
|
|
- X_CRDN : obj.x_crdn,
|
|
|
- Y_CRDN : obj.y_crdn,
|
|
|
- URL : obj.strm_http_addr,
|
|
|
- TYPE : 'cctv',
|
|
|
- DATA : obj,
|
|
|
+ ID : obj.cctv_mngm_nmbr,
|
|
|
+ NAME : obj.istl_lctn_nm,
|
|
|
+ X_CRDN : obj.x_crdn,
|
|
|
+ Y_CRDN : obj.y_crdn,
|
|
|
+ URL : obj.strm_http_addr,
|
|
|
+ TYPE : 'cctv',
|
|
|
+ DATA : obj,
|
|
|
IMAGE_TYPE : '1',
|
|
|
- IMAGE : '/images/icon/cctv'
|
|
|
+ IMAGE : '/images/icon/cctv',
|
|
|
+ ADDR : obj.istl_lctn_addr,
|
|
|
});
|
|
|
this.iwContent = this.getIwContent();
|
|
|
}
|
|
@@ -1053,21 +1080,22 @@ class TbCCtvObj extends MarkerObj{
|
|
|
class TbParkingObj extends MarkerObj{
|
|
|
constructor(obj) {
|
|
|
super({
|
|
|
- ID : obj.parking_id,
|
|
|
- NAME : obj.parking_nm,
|
|
|
- X_CRDN : obj.x_crdn,
|
|
|
- Y_CRDN : obj.y_crdn,
|
|
|
- URL : null,
|
|
|
- TYPE : 'parking',
|
|
|
- DATA : obj,
|
|
|
- IMAGE_TYPE : '1',
|
|
|
- IMAGE : '/images/icon/parking'
|
|
|
+ ID : obj.parking_id,
|
|
|
+ NAME : obj.parking_nm,
|
|
|
+ X_CRDN : obj.x_crdn,
|
|
|
+ Y_CRDN : obj.y_crdn,
|
|
|
+ URL : null,
|
|
|
+ TYPE : 'parking',
|
|
|
+ DATA : obj,
|
|
|
+ IMAGE_TYPE : '1',
|
|
|
+ IMAGE : '/images/icon/parking',
|
|
|
+ ADDR : obj.parking_addr,
|
|
|
})
|
|
|
this.iwContent = this.getIwContent();
|
|
|
}
|
|
|
|
|
|
getIwContent() {
|
|
|
- const {ID, NAME, prop} = this;
|
|
|
+ const {ID, NAME, prop, X_CRDN, Y_CRDN} = this;
|
|
|
let iwContent =
|
|
|
`<div class="parking-info-window">
|
|
|
<div class="title">
|
|
@@ -1089,7 +1117,7 @@ class TbParkingObj extends MarkerObj{
|
|
|
</div>
|
|
|
<div class="row">
|
|
|
<div>주소</div>
|
|
|
- <div title="주소 : ${prop.parking_addr}">${prop.parking_addr}</div>
|
|
|
+ <div style="cursor:pointer;" title="주소 : ${prop.parking_addr}" onclick="openNavigationApp('${X_CRDN}','${Y_CRDN}','${prop.parking_addr}')">${prop.parking_addr}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>`;
|
|
@@ -1103,15 +1131,16 @@ class TbParkingObj extends MarkerObj{
|
|
|
class TbVmsObj extends MarkerObj{
|
|
|
constructor(obj) {
|
|
|
super({
|
|
|
- ID : obj.vms_ctlr_nmbr,
|
|
|
- NAME : obj.vms_nm,
|
|
|
- X_CRDN : obj.x_crdn,
|
|
|
- Y_CRDN : obj.y_crdn,
|
|
|
- URL : null,
|
|
|
- TYPE : 'vms',
|
|
|
- DATA : obj,
|
|
|
- IMAGE_TYPE : '1',
|
|
|
- IMAGE : '/images/icon/vms'
|
|
|
+ ID : obj.vms_ctlr_nmbr,
|
|
|
+ NAME : obj.vms_nm,
|
|
|
+ X_CRDN : obj.x_crdn,
|
|
|
+ Y_CRDN : obj.y_crdn,
|
|
|
+ URL : null,
|
|
|
+ TYPE : 'vms',
|
|
|
+ IMAGE : '/images/icon/vms',
|
|
|
+ IMAGE_TYPE : '1',
|
|
|
+ DATA : obj,
|
|
|
+ ADDR : obj.istl_lctn_addr,
|
|
|
});
|
|
|
this.iwContent = this.getIwContent();
|
|
|
}
|
|
@@ -1178,16 +1207,18 @@ class TbVmsObj extends MarkerObj{
|
|
|
class TbIncdObj extends MarkerObj{
|
|
|
constructor(obj) {
|
|
|
super({
|
|
|
- ID : obj.incd_ocrr_id,
|
|
|
- NAME : obj.incd_titl,
|
|
|
- X_CRDN : obj.x_crdn,
|
|
|
- Y_CRDN : obj.y_crdn,
|
|
|
- URL : null,
|
|
|
- TYPE : 'incident',
|
|
|
- DATA : obj,
|
|
|
- IMAGE_TYPE : '1',
|
|
|
- IMAGE : '/images/icon/incd'
|
|
|
- })
|
|
|
+ ID : obj.incd_ocrr_id,
|
|
|
+ NAME : obj.incd_titl,
|
|
|
+ X_CRDN : obj.x_crdn,
|
|
|
+ Y_CRDN : obj.y_crdn,
|
|
|
+ URL : null,
|
|
|
+ TYPE : 'incident',
|
|
|
+ IMAGE : '/images/icon/incd',
|
|
|
+ IMAGE_TYPE : '1',
|
|
|
+ DATA : obj,
|
|
|
+ ADDR : obj.road_nm,
|
|
|
+ });
|
|
|
+
|
|
|
this.iwContent = this.getIwContent();
|
|
|
}
|
|
|
|
|
@@ -1241,15 +1272,16 @@ class IntersectionCameraObj extends MarkerObj{
|
|
|
constructor(obj) {
|
|
|
super(
|
|
|
{
|
|
|
- ID : obj.cmra_id + '_' + obj.drct_dvsn_cd,
|
|
|
- NAME : obj.drct_lctn,
|
|
|
- X_CRDN : obj.cmra_x_crdn,
|
|
|
- Y_CRDN : obj.cmra_y_crdn,
|
|
|
- URL : obj.hmpg_cmra_url,
|
|
|
- TYPE : 'intersectionCamera',
|
|
|
- DATA : obj,
|
|
|
- IMAGE_TYPE : "",
|
|
|
- IMAGE : '/images/icon/intersection'
|
|
|
+ ID : obj.cmra_id + '_' + obj.drct_dvsn_cd,
|
|
|
+ NAME : obj.drct_lctn,
|
|
|
+ X_CRDN : obj.cmra_x_crdn,
|
|
|
+ Y_CRDN : obj.cmra_y_crdn,
|
|
|
+ URL : obj.hmpg_cmra_url,
|
|
|
+ TYPE : 'intersectionCamera',
|
|
|
+ DATA : obj,
|
|
|
+ IMAGE_TYPE : "",
|
|
|
+ ADDR : obj.istl_lctn,
|
|
|
+ IMAGE : '/images/icon/intersection'
|
|
|
}
|
|
|
)
|
|
|
this.iwContent = this.getIwContent();
|