- Timestamp:
- 2019-05-31T20:02:40+12:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/map-scripts.js
r32833 r33125 24 24 if(jsonNodeDiv.length) 25 25 { 26 console.log("@@@ JSON node div html: " + jsonNodeDiv.html()); 27 26 28 var jsonNodes = eval(jsonNodeDiv.html()); 27 29 if(jsonNodes && jsonNodes.length > 0) … … 31 33 _docList[jsonNodes[i].nodeID] = jsonNodes[i]; 32 34 _docList.ids.push(jsonNodes[i].nodeID); 35 console.log("@@@ JSON node: " + jsonNodes[i]); 33 36 createMarker(jsonNodes[i], true); 34 37 } … … 39 42 //$("#map_canvas").css({visibility:"hidden", height:"0px"}); 40 43 $("#map_canvas").css({visibility:"hidden"}); 44 //console.log("suppressing hiding the map"); 41 45 } 42 46 } … … 82 86 function setUpMap() 83 87 { 84 88 //alert("@@@@in map-scripts::setUpMap()"); 85 89 86 90 var myOptions = … … 93 97 94 98 if ($map_canvas.length > 0) { 99 console.log("### map-scripts::setUpMap: map_canvas.exists"); 95 100 _map = new google.maps.Map($map_canvas[0], myOptions); 96 101 google.maps.event.addListener(_map, 'bounds_changed', performSearchForMarkers); … … 104 109 return; 105 110 } 111 112 106 113 107 114 _searchRunning = true; … … 145 152 if(lngDelta == 0.1){lngDelta = 1; lngPrecision = 0; } 146 153 154 /* 147 155 var query = ""; 148 156 for(var i = 0; i <= Math.floor(latDistance / latDelta) + 1; i++) … … 183 191 } 184 192 } 193 */ 194 var query = ""; 195 var iMax = Math.floor(latDistance / latDelta) + 1; 196 var jMax = Math.floor(lngDistance / lngDelta) + 1;; 197 for(var i = 0; i <= iMax; i++) //for(var i = 0; i <= Math.floor(latDistance / latDelta) + 1; i++) 198 { 199 for(var j = 0; j <= jMax; j++) //for(var j = 0; j <= Math.floor(lngDistance / lngDelta) + 1; j++) 200 { 201 //Some necessary variables 202 var newLat = neLat - (latDelta * i); 203 var newLatString = "" + newLat; 204 var newLatTrunc; 205 if(newLat < 0){newLatTrunc = Math.ceil(newLat);} 206 else{newLatTrunc = Math.floor(newLat);} 207 208 var newLng = neLng - (lngDelta * j); 209 var newLngString = "" + newLng; 210 var newLngTrunc; 211 if(newLng < 0){newLngTrunc = Math.ceil(newLng);} 212 else{newLngTrunc = Math.floor(newLng);} 213 214 //Construct query 215 query += "("; 216 query += "CS:\"" + coordToAbsDirected(newLatTrunc, "lat"); 217 //query += "CS:\"" + coordToAbsDirected(newLatTrunc, "lat") + "\" \"" + coordToAbsDirected(newLngTrunc, "lng") + "\""; //query += "LA:" + coordToAbsDirected(newLatTrunc, "lat"); 218 if(latDelta != 1) 219 { 220 query += newLatString.substring(newLatString.indexOf(".") + 1, newLatString.indexOf(".") + latPrecision + 1); 221 } 222 query += " "; 223 //query += "+AND+"; 224 225 //query += "LN:" + coordToAbsDirected(newLngTrunc, "lng"); 226 query += coordToAbsDirected(newLngTrunc, "lng"); 227 if(lngDelta != 1) 228 { 229 query += newLngString.substring(newLngString.indexOf(".") + 1, newLngString.indexOf(".") + lngPrecision + 1); 230 } 231 query += "\""; 232 query += ")"; 233 234 //if(i != (Math.floor(latDistance / latDelta) + 1) || j != (Math.floor(lngDistance / lngDelta) + 1)){ query += "+OR+"; } 235 if(i != iMax || j != jMax){ query += "+OR+"; } 236 } 237 } 238 239 // This works, why not from the double loop above? 240 //query = "(CS:\"" + coordToAbsDirected(newLatTrunc, "lat") + " " + coordToAbsDirected(newLngTrunc, "lng") + "\")"; 241 //alert("@@@@in map-scripts::performSearchForMarkers() - query: " + query); 185 242 186 243 //var url = gs.xsltParams.library_name + "?a=q&s=RawQuery&rt=rd&c=" + gs.cgiParams.c + "&s1.rawquery=" + query + "&excerptid=jsonNodes"; … … 196 253 var startIndex = responseText.indexOf(">"); 197 254 var endIndex = responseText.indexOf("</"); 255 256 console.log("@@@@ performSearch, got response: " + responseText); 198 257 199 258 var jsonNodes = eval(responseText.substring(startIndex+1, endIndex)); … … 278 337 } 279 338 339 if(!doc.lat) { 340 var coordInfo = getLatLngForCoord(doc.coord); 341 bounds.extend(new google.maps.LatLng(coordInfo.lat, coordInfo.lng)); 342 } 343 else { 280 344 bounds.extend(new google.maps.LatLng(doc.lat, doc.lng)); 345 } 281 346 } 282 347 … … 291 356 } 292 357 358 function getLatLngForCoord(coord) { 359 360 // https://stackoverflow.com/questions/2559318/how-to-check-for-an-undefined-or-null-variable-in-javascript 361 if(!coord) { 362 // some_variable is either null, undefined, 0, NaN, false, or an empty string 363 console.log("@@@@ In map-scripts::getLatLngForCoord(): no or invalid coord info"); 364 return null; 365 } 366 367 // coord is of the form: "37S77 157E53" 368 // lat will be 37S77, lng 157E53. 369 var indexOfSpace = coord.indexOf(" "); 370 if(indexOfSpace === -1) { 371 console.log("@@@@ In map-scripts::getLatLngForCoord(): bad format for coord " + coord); 372 return null; 373 } 374 var latitude = coord.substring(0, indexOfSpace); 375 var longitude = coord.substring(indexOfSpace+1); 376 return {lat: latitude, lng: longitude}; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects 377 } 378 293 379 function loopThroughMarkers() 294 380 { … … 363 449 gs.functions.setArchivesMetadata(collection, site_name, nodeID, "Latitude", null, lat, null, "override", function(){callbackFunction();}); 364 450 gs.functions.setArchivesMetadata(collection, site_name, nodeID, "Longitude", null, lng, null, "override", function(){callbackFunction();}); 451 gs.functions.setArchivesMetadata(collection, site_name, nodeID, "Coordinate", null, lat + " " + lng, null, "override", function(){callbackFunction();}); 365 452 console.log("NodeID: " + nodeID); 366 453 console.log("GPS Click handler in collection:" + collection + " in site: " + site_name + " for Doc: " + nodeID + "(" + lat + "," + lng + ")"); … … 376 463 clearInterval(_intervalHandle); 377 464 _intervalHandle = null; 378 _map.panTo(new google.maps.LatLng(doc.lat, doc.lng)); 465 if(!doc.lat) { 466 var coordInfo = getLatLngForCoord(doc.coord); 467 _map.panTo(new google.maps.LatLng(coordInfo.lat, coordInfo.lng)); 468 } else { 469 _map.panTo(new google.maps.LatLng(doc.lat, doc.lng)); 470 } 379 471 clearAllInfoBoxes(); 380 472 doc.marker.markerInfo.open(_map, doc.marker); … … 398 490 function createMarker(doc, mainMarker) 399 491 { 400 var pos = new google.maps.LatLng(doc.lat,doc.lng); 492 var pos; 493 if(doc.lat) { 494 pos = new google.maps.LatLng(doc.lat,doc.lng); 495 } else { 496 var coordInfo = getLatLngForCoord(doc.coord); 497 pos = new google.maps.LatLng(coordInfo.lat,coordInfo.lng); 498 } 499 401 500 402 501 var docEdit = (("docEdit" in gs.cgiParams) && (gs.cgiParams['docEdit'])); … … 525 624 } 526 625 626 function performDistanceSearchWithCoordinates(id, coord, degrees) 627 { 628 var coordInfo = getLatLngForCoord(doc.coord); 629 if(!coordInfo) { 630 console.log("@@@ ERROR in map-scripts::performDistanceSearchWithCoordinates: coordInfo is null"); 631 } 632 performDistanceSearch(id, coordInfo.lat, coordInfo.lng, degrees); 633 } 634 527 635 function performDistanceSearch(id, lat, lng, degrees) 528 636 {
Note:
See TracChangeset
for help on using the changeset viewer.