Object -
pvr cache id
cut error
pvrCache to pvrLocCache
space function
function clearStartSelect(){ /**` * @since called by clearSelected() only * @todo async - pvrwindow close is too slow */ // close Pano Window if (PvrViewerWindow && PvrViewerWindow.window){ console.log('', osm.startSelect.getFeatures()) let feature = osm.startSelect.getFeatures().getArray()[0] if (feature){ let pvr = feature.get('pvr') pvr.panoMaked = false } } osm.startSelect.getFeatures().clear() if (osm.searchFlag){ $("#SelectPvrID1").val(osm.startPvr) osm.searchFlag = false } else osm.startPvr = undefined }
case 32: /* space */ clearSelected() if (PvrViewerWindow && PvrViewerWindow.window) PvrViewerWindow.window.close() changeUIData() GetPvrRelationLocal() break
connect error
case 99: /* c */ case 67: /* C */ SetRelation(osm.startPvr, osm.endPvr, 0) /* cut */ GetPvrRelationLocal() break
function SaveEditedData() { console.log('pvr length: ', PvrArray.length, 'relation length: ', RelationArray.length) let DataObject = new Object() DataObject.Pvr = PvrArray DataObject.Relation = RelationArray let JsonObject = new Object() JsonObject.Result = 0 JsonObject.Message = "" JsonObject.Data = DataObject let JsonString = JSON.stringify(JsonObject) $.ajax({ url: "/GNSS3/PutPvrRelation.php", method: "POST", data: JsonString, success: PutPvrRelationResponse }) }
function updateLocCache(pvrid){ for (let pvr of PvrArray) if (pvrid == pvr.PvrID) return pvrLocCache.set(pvrid, [pvr.Lng, pvr.Lat]) }
function linkPvr(PvrID1, PvrID2){ updateLocCache(PvrID1) updateLocCache(PvrID2) let PvrID1Lat = PvrID1Lng = PvrID2Lat = PvrID2Lng = i = 0.0 // Edit PVRArray data from, to for(var i = 0; i < PvrArray.length; i++) { if(PvrID1 == PvrArray[i].PvrID) { PvrID1Lat = PvrArray[i].Lat PvrID1Lng = PvrArray[i].Lng console.log("++") PvrArray[i].RelationCount++ break } } for(var i = 0; i < PvrArray.length; i++){ if(PvrID2 == PvrArray[i].PvrID) { PvrID2Lat = PvrArray[i].Lat PvrID2Lng = PvrArray[i].Lng console.log("++") PvrArray[i].RelationCount++ break } } // Re-enable Relation from var i = 0 for(i = 0; i < RelationArray.length; i++){ if((PvrID1 == RelationArray[i].PvrID) && (PvrID2 == RelationArray[i].RelationID)){ RelationArray[i].RelationPan = AnglePoint(PvrID1Lng, PvrID1Lat, PvrID2Lng, PvrID2Lat) RelationArray[i].Enabled = 1 RelationArray[i].Edited = 1 break } } // Make Relation from if(i == RelationArray.length) { var RelationObject = new Object() RelationObject.PvrID = PvrID1 RelationObject.RelationID = PvrID2 RelationObject.RelationPan = AnglePoint(PvrID1Lng, PvrID1Lat, PvrID2Lng, PvrID2Lat) RelationObject.Enabled = 2 RelationObject.Edited = 1 RelationArray.push(RelationObject) } // Re-enable Relation to i = 0; for(i = 0; i < RelationArray.length; i++) { if((PvrID1 == RelationArray[i].RelationID) && (PvrID2 == RelationArray[i].PvrID)) { RelationArray[i].RelationPan = AnglePoint(PvrID2Lng, PvrID2Lat, PvrID1Lng, PvrID1Lat) RelationArray[i].Enabled = 1 RelationArray[i].Edited = 1 break } } // Make Relation to if(i == RelationArray.length) { var RelationObject = new Object() RelationObject.PvrID = PvrID2 RelationObject.RelationID = PvrID1 RelationObject.RelationPan = AnglePoint(PvrID2Lng, PvrID2Lat, PvrID1Lng, PvrID1Lat) RelationObject.Enabled = 2 RelationObject.Edited = 1 RelationArray.push(RelationObject) } } function cutPvr(PvrID1, PvrID2){ // From for (let i = 0; i < RelationArray.length; i++) { if ((PvrID1 == RelationArray[i].PvrID) && (PvrID2 == RelationArray[i].RelationID)) { console.log('Remove from', ) RelationArray[i].Enabled = 0 RelationArray[i].Edited = true for (let j = 0; j < PvrArray.length; j++) { if (PvrArray[j].PvrID == PvrID1) { PvrArray[j].RelationCount-- break } } continue } } // To for (let i = 0; i < RelationArray.length; i++) { if ((PvrID1 == RelationArray[i].RelationID) && (PvrID2 == RelationArray[i].PvrID)) { console.log('Remove to', ) RelationArray[i].Enabled = 0 RelationArray[i].Edited = true for (let j = 0; j < PvrArray.length; j++) { if (PvrArray[j].PvrID == PvrID2) { PvrArray[j].RelationCount-- break } } continue } } } function SetRelation(PvrID1, PvrID2, LinkFlag) { if (checkMiaHidden(PvrID1) || checkMiaHidden(PvrID2)) return console.log('make relation', ) if (!PvrID1 || !PvrID2) return alert("노드를 두개 선택해 주십시요") if (PvrID1 == PvrID2) return alert("PvrID1 과 PvrID2 가 같습니다.") // Division if (LinkFlag == 1) linkPvr(PvrID1, PvrID2) else cutPvr(PvrID1, PvrID2) EditedSet(1) }
function GetPvrRelationResponse(ResponseDataArray){ let dataNode if(typeof(ResponseDataArray.Data) == "undefined") return let data = ResponseDataArray.Data.Pvr if(typeof(data) == "undefined") return CountPvr = data.length CountHidden = CountMIA = CountDirty = 0 if (pvrLocCache && !ViewFlagRelation) pvrLocCache.clear() pvrLocCache = new Map() for (dataNode of data) pvrLocCache.set(dataNode.PvrID, [dataNode.Lng, dataNode.Lat]) if(data.length < PvrArray.length){ for(let i in data) assignPvr(PvrArray[i], data[i]) // Pop Pvr and reduce Length for(let i = PvrArray.length; i > data.length; i--){ delete PvrArray[PvrArray.length-1] PvrArray.pop() } } else if(data.length > PvrArray.length){ for (let i in PvrArray) assignPvr(PvrArray[i], data[i]) for(let i = PvrArray.length; i < data.length; i++) { let PvrObject = new Object() assignPvr(PvrObject, data[i]) PvrArray.push(PvrObject) } } else for(let i = 0; i < data.length; i++) assignPvr(PvrArray[i], data[i]) data = ResponseDataArray.Data.Relation if(typeof(data) == "undefined") return CountRelation = data.length if(data.length < RelationArray.length){ for(let i in data) assignRelation(RelationArray[i], data[i]) for(let i = RelationArray.length; i > data.length; i--){ delete RelationArray[RelationArray.length-1] RelationArray.pop() } } else if(data.length > RelationArray.length){ for(let i = 0; i < RelationArray.length; i++) assignRelation(RelationArray[i], data[i]) for(let i = RelationArray.length; i < data.length; i++){ let RelationObject = new Object() assignRelation(RelationObject, data[i]) RelationArray.push(RelationObject) } } else for(let i in data) assignRelation(RelationArray[i], data[i]) CountPvr -= CountHidden checkSelectedExist() if(ViewFlagPvr) makeOlPvr() if(ViewFlagRelation) makeOlRelation() GetPvrRelationEndFlag = 0 $("#FontCountPvr").html(NumberFormat(CountPvr)) $("#FontCountRelation").html(NumberFormat(CountRelation)) $("#FontCountHidden").html(NumberFormat(CountHidden)) $("#FontCountMIA").html(NumberFormat(CountMIA)) $("#DirtyCount").html(NumberFormat(CountDirty)) $("#FontWaitStatus").html("READY") EditedSet(0) } function checkSelectedExist(){ if (osm.startPvr !== undefined){ let startExist = false for (pvr of PvrArray) if (pvr.PvrID == osm.startPvr) startExist = true if (!startExist) clearSelected() } if (osm.endPvr !== undefined){ let endExist = false for (pvr of PvrArray) if (pvr.PvrID == osm.endPvr) endExist = true if (!endExist) clearSelected() } }

Seonglae Cho