Changeset 14
- Timestamp:
- 12/28/06 06:40:44 (2 years ago)
- Files:
-
- worldkit/com/brainoff/worldkitAnnotation.as (modified) (13 diffs)
- worldkit/com/brainoff/worldkitConfig.as (modified) (14 diffs)
- worldkit/com/brainoff/worldkitImages.as (modified) (3 diffs)
- worldkit/com/brainoff/worldkitInteraction.as (modified) (17 diffs)
- worldkit/com/brainoff/worldkitMain.as (modified) (1 diff)
- worldkit/com/brainoff/worldkitRSS.as (modified) (15 diffs)
- worldkit/worldkit.fla (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
worldkit/com/brainoff/worldkitAnnotation.as
r10 r14 14 14 15 15 private var mc:MovieClip; 16 17 16 private var depth:Number; 18 17 private var title:String; … … 28 27 private var vector:String; 29 28 private var vtype:String; 29 private var datestring:String; 30 30 private var date:Date; 31 31 private var precompile:Boolean; … … 44 44 private var jsargs:String; 45 45 private var color:Number; 46 private var createdate:Date; 46 47 47 48 private var initialplotcolor:Number; … … 57 58 private var fillalpha:Number; 58 59 private var window:String; 60 private var rssicon:String; 61 private var curralpha:Number; 59 62 60 63 private var colorobj:Color; 61 64 62 public function worldkitAnnotation(main:worldkitMain, mc:MovieClip, depth:Number, title:String, url:String, lat:Number, lon:Number, summary:String, cats:Array, id:String, photo:String, prevlat:Number, prevlon:Number, vector:String, vtype:String, datestring:String, precompile:Boolean, enddate:String ) {65 public function worldkitAnnotation(main:worldkitMain, mc:MovieClip, depth:Number, title:String, url:String, lat:Number, lon:Number, summary:String, cats:Array, id:String, photo:String, prevlat:Number, prevlon:Number, vector:String, vtype:String, datestring:String, precompile:Boolean, enddate:String, rssicon:String) { 63 66 64 67 this.main = main; … … 83 86 this.vector = vector; 84 87 this.vtype = vtype; 88 this.datestring = datestring; 85 89 this.date = new Date(worldkitUtil.parseDate(datestring)); 86 90 this.precompile = precompile; … … 88 92 this.enddate = new Date(worldkitUtil.parseDate(enddate)); 89 93 } 94 this.rssicon = rssicon; 90 95 91 96 present = true; … … 107 112 } 108 113 114 createdate = new Date(); 115 curralpha = 100; 109 116 mc[this.clipname].annotation = this; 110 117 } … … 175 182 interact.scaleAndPosition(mc,undefined); 176 183 } 184 185 186 if (conf.newitemcallback) { 187 var msg = "title=" + escape(title) + "&url=" + escape(url) + "&summary=" + escape( summary.split("\"").join("\\\"") ) + "&lat=" + escape(String(lat)) + "&lon=" + escape(String(lon)) + "&id=" + escape(id); 188 interact.processClick("", "_" + conf.newitemcallback, msg); 189 } 177 190 } 178 191 … … 242 255 } else if (vtype == "box") { 243 256 drawbox(); 257 } else if (rssicon != undefined && rssicon != "") { 258 if (time == 1) { 259 loadrssicon(); 260 } else { 261 activateicon(time); 262 } 244 263 } else if (icon != undefined && icon != "") { 245 264 if (time == 1) { 246 265 loadicon(); 247 } 266 } 248 267 } else if (plotshape == "square") { 249 268 square(); … … 280 299 var boxarray = vector.split(" "); 281 300 if (boxarray.length == 4) { 282 vector = boxarray[0] + " " + boxarray[1] + " " + boxarray[0] + " " + boxarray[3] + " " + boxarray[2] + " " + boxarray[3] + " " + boxarray[ 1] + " " + boxarray[0] + " " + boxarray[1];301 vector = boxarray[0] + " " + boxarray[1] + " " + boxarray[0] + " " + boxarray[3] + " " + boxarray[2] + " " + boxarray[3] + " " + boxarray[2] + " " + boxarray[1] + " " + boxarray[0] + " " + boxarray[1]; 283 302 vtype = "poly"; 284 303 drawpoly(); … … 354 373 } 355 374 375 private function loadrssicon():Void { 376 if (mc[clipname]["icon"] == undefined) { 377 mc[clipname].createEmptyMovieClip("icon",1); 378 } 379 if (! img.loadrssicon(mc[clipname]["icon"], rssicon)) { 380 worldkitUtil.setTimeout(this, "loadrssicon", 1000); 381 } 382 } 383 public function activateicon(time:Number) { 384 if (mc[clipname]["icon"] == undefined) { 385 return; 386 } 387 var iconwidth; 388 var alpha = 100; 389 if (time == 2) { 390 iconwidth = conf.rssiconwidth; 391 alpha = curralpha; 392 } else if (time == 3) { 393 iconwidth = conf.rssiconwidth * 1.5; 394 } 395 img.activateicon(mc[clipname]["icon"], rssicon, iconwidth); 396 mc[clipname]["icon"]._alpha = alpha; 397 } 398 356 399 //REVISIT 357 400 private function tracks():Void { … … 449 492 } 450 493 } 494 public function forceActivate():Void { 495 if (activate == true) { 496 activate = false; 497 shape(2); 498 } else { 499 activate = true; 500 shape(3); 501 } 502 } 503 504 public function setAlphaFade(now:Date):Void { 505 if (curralpha == -1) { return; } 506 var s = (now - createdate) / 1000; 507 var clip; 508 if (mc[clipname]["icon"]) { 509 clip = mc[clipname]["icon"]; 510 } else { 511 clip = mc[clipname]; 512 } 513 clip._alpha = 100 - 100 * (s / conf.fade); 514 curralpha = clip._alpha; 515 516 if (curralpha <= 0) { 517 if (mc[clipname]["icon"]) { 518 mc[clipname]["icon"].removeMovieClip(); 519 mc[clipname]["icon"] = 1; 520 } else { 521 mc[clipname].clear(); 522 } 523 if (conf.fadeditemcallback) { 524 var msg = "&id=" + escape(id); 525 interact.processClick("", "_" + conf.fadeditemcallback, msg); 526 } 527 curralpha = -1; 528 } 529 } 451 530 452 531 public function hidetext():Void { … … 506 585 if (vector != this.vector) { this.vector = vector; changed = true; } 507 586 if (vtype != this.vtype) { this.vtype = vtype; changed = true; } 508 var d:Date = new Date(worldkitUtil.parseDate(datestring)); 509 if (d != this.date) {this.date = d; changed = true; } //REVISIT work?? 587 if (datestring != this.datestring) {this.date = new Date(worldkitUtil.parseDate(datestring)); changed = true; } //REVISIT work?? 510 588 511 589 return changed; worldkit/com/brainoff/worldkitConfig.as
r10 r14 36 36 var enddate:Date; 37 37 var enddatefield:String; 38 var fade:Number; 39 var fadeditemcallback:String; 38 40 var fillalpha:worldkitConfigCat; 39 41 var fscommand:Boolean; … … 59 61 var maxzoom:Boolean; 60 62 var neartime:Number; 63 var newitemcallback:String; 61 64 var nightimg:String; 62 65 var north:Number; 66 var onzoompan:String; 63 67 var panc:Number; 64 68 var plotinterval:Number; … … 68 72 var precompile:Object; //beta 69 73 var projection:String; 74 var resultssince:Boolean; 70 75 var restingplotcolor:worldkitConfigCat; 76 var rssiconwidth:Number; 77 var rssbbox:Boolean; 71 78 var showload:Boolean; 72 79 var showonlynew:Boolean; … … 81 88 var textinterval:Number; 82 89 var textsize:Number; 90 var tilemap:Object; 83 91 var timenav:Boolean; 84 92 var timenavpos:Number; … … 118 126 enddate = new Date(); 119 127 enddatefield = "any"; 128 fade = -1; 120 129 fscommand = false; 121 130 grabber = false; … … 136 145 polarimg = "polar.jpg"; 137 146 projection = "none"; 147 resultssince = false; 148 rssbbox = false; 149 rssiconwidth = 20; 138 150 showload = false; 139 151 showonlynew = false; … … 171 183 swflayer = new Object(); 172 184 swftemplate = new Object(); 185 tilemap = new Object(); 173 186 wms = new Object(); 174 187 … … 281 294 case "timenavpos": 282 295 case "neartime": 296 case "rssiconwidth": 297 case "fade": 283 298 this[name] = Number(value); 284 299 break; … … 301 316 case "startdatefield": 302 317 case "enddatefield": 318 case "newitemcallback": 319 case "onzoompan": 320 case "fadeditemcallback": 303 321 304 322 this[name] = value; … … 323 341 case "fscommand": 324 342 case "timenav": 343 case "resultssince": 344 case "rssbbox": 325 345 326 346 if (value == "true") { … … 432 452 if (attr.maxtiledeg != undefined) { this.wms[ attr.id ].maxtiledeg = attr.maxtiledeg; } 433 453 if (attr.time != undefined) { this.wms[ attr.id ].time = new Date(worldkitUtil.parseDate(attr.time)); } 434 break; 435 454 if (attr.minview != undefined) { this.wms[ attr.id ].minview = attr.minview; } 455 if (attr.maxview != undefined) { this.wms[ attr.id ].maxview = attr.maxview; } 456 break; 457 458 case "tilemap": 459 if (attr.global_profile && attr.global_profile == 1) { //only support global profile for now 460 this.wms[ attr.id ] = new Object(); 461 this.wms[ attr.id ].url = value; 462 this.wms[ attr.id ].width = 256; 463 this.wms[ attr.id ].height = 256; 464 this.wms[ attr.id ].maxtiledeg = 180; 465 this.wms[ attr.id ].tilemap = true; 466 } 467 break; 468 436 469 case "precompile": 437 470 if (attr.id != undefined) { … … 527 560 private function processWMSConfig():Void { 528 561 for (var s in wms) { 529 var l = Math.log( maxscale ) / Math.log( 2 ); //calcs number of levels in pyramid 562 563 var start; var end; 564 if (wms[ s ].minview != undefined) { 565 start = Math.log( wms[ s ].minview ) / Math.log(2); 566 } else { 567 start = 1; 568 } 569 if (wms[ s ].maxview == undefined) { 570 wms[ s ].maxview = maxscale; 571 } 572 end = Math.log( wms[ s ].maxview ) / Math.log(2); 573 574 //var l = Math.log( maxscale ) / Math.log( 2 ); //calcs number of levels in pyramid 530 575 531 for (var i = 1; i <= l; i++) {576 for (var i = start; i <= end; i++) { 532 577 var id = s + i.toString(); 533 578 swftemplate[ id ] = new Object(); … … 542 587 swftemplate[id].tileheight = h; 543 588 } 544 swftemplate[ id ].url = wms[ s ].url + "&width=" + swftemplate[id].tilewidth + "&height=" + swftemplate[id].tileheight + "&bbox=WEST,SOUTH,EAST,NORTH"; 589 if (wms[ s ].tilemap) { 590 swftemplate[ id ].url = wms[ s ].url; 591 swftemplate[ id ].tilemap = true; 592 } else { 593 swftemplate[ id ].url = wms[ s ].url + "&width=" + swftemplate[id].tilewidth + "&height=" + swftemplate[id].tileheight + "&bbox=WEST,SOUTH,EAST,NORTH"; 594 } 545 595 swftemplate[ id ].minscale = Math.pow(2, (i-1)); 546 swftemplate[ id ].maxscale = maxscale;547 swftemplate[ id ].minview = i / 2; 548 swftemplate[ id ].maxview = maxscale;596 swftemplate[ id ].maxscale = wms[ s ].maxview; 597 swftemplate[ id ].minview = i / 2; //BUG?? 598 swftemplate[ id ].maxview = wms[ s ].maxview; 549 599 550 600 if (wms[ s ].maxtiledeg) { //can actually assume maxtiledeg for default and calc REVISIT … … 565 615 } 566 616 567 568 617 public function getConfBySubject(option:String,cats:Array) { 569 618 for (var i=0; i<cats.length; i++) { worldkit/com/brainoff/worldkitImages.as
r10 r14 105 105 for (var s in conf.swftemplate) { 106 106 imagemc.createEmptyMovieClip(s, layer + conf.swftemplate[s].layer); 107 l = conf.swftemplate[s].layer; //REVIST tangled interplay of config iterator, layer, etc 107 if (conf.swftemplate[s].layer > l) { 108 l = conf.swftemplate[s].layer; //REVIST tangled interplay of config iterator, layer, etc 109 } 108 110 } 109 111 layer += l; … … 454 456 } 455 457 var tileurl = conf.swftemplate[id].url; 456 tileurl = worldkitUtil.myreplace(tileurl,"NORTH",tilenorth); 457 tileurl = worldkitUtil.myreplace(tileurl,"SOUTH",tilesouth); 458 tileurl = worldkitUtil.myreplace(tileurl,"EAST",tileeast); 459 tileurl = worldkitUtil.myreplace(tileurl,"WEST",tilewest); 460 tileurl = worldkitUtil.myreplace(tileurl,"LAT",tilelat); 461 tileurl = worldkitUtil.myreplace(tileurl,"LON",tilelon); 458 459 if (conf.swftemplate[id].tilemap) { 460 tileurl = tileurl + Math.log(conf.swftemplate[id].minscale)/Math.log(2) + "/" + i + "/" + (conf.swftemplate[id].spany - j - 1) + ".jpg"; 461 } else { 462 tileurl = worldkitUtil.myreplace(tileurl,"NORTH",tilenorth); 463 tileurl = worldkitUtil.myreplace(tileurl,"SOUTH",tilesouth); 464 tileurl = worldkitUtil.myreplace(tileurl,"EAST",tileeast); 465 tileurl = worldkitUtil.myreplace(tileurl,"WEST",tilewest); 466 tileurl = worldkitUtil.myreplace(tileurl,"LAT",tilelat); 467 tileurl = worldkitUtil.myreplace(tileurl,"LON",tilelon); 468 } 462 469 463 470 conf.swflayer[tileid].url = tileurl; … … 621 628 } 622 629 } 630 631 public function loadrssicon(mc:MovieClip, url:String):Boolean { 632 var key:String = imagemc._name + ":" + escape(url); 633 if (imagemc[ escape(url) ].loaded) { 634 mc.loadMovie(url); 635 var w = imglist[key]["mc"][escape(url)]._width; 636 var h = imglist[key]["mc"][escape(url)]._height; 637 mc._xscale = 100 * conf.rssiconwidth / w; 638 mc._yscale = 100 * conf.rssiconwidth / w; 639 mc._x = - .5 * (conf.rssiconwidth); 640 mc._y = - .5 * (conf.rssiconwidth * h / w); 641 return true; 642 } else if (imglist[ key ] == undefined) { 643 loadImage(imagemc, escape(url), url, layer, "MakeInvisible", 0, 1, undefined, undefined, undefined, false); 644 layer++; 645 } 646 return false; 647 } 648 public function activateicon(mc:MovieClip, url:String, iconwidth:Number) { 649 var key:String = imagemc._name + ":" + escape(url); 650 var w = imglist[key]["mc"][escape(url)]._width; 651 var h = imglist[key]["mc"][escape(url)]._height; 652 mc._xscale = 100 * iconwidth / w; 653 mc._yscale = 100 * iconwidth / w; 654 mc._x = - .5 * (iconwidth); 655 mc._y = - .5 * (iconwidth * h / w); 656 } 657 623 658 } worldkit/com/brainoff/worldkitInteraction.as
r12 r14 12 12 import com.brainoff.worldkitRSS; 13 13 import com.brainoff.worldkitUtil; 14 //import com.macromedia.javascript.JavaScriptProxy; 15 import flash.external.*; 14 16 15 17 class com.brainoff.worldkitInteraction { … … 24 26 private var keylistener:Object; 25 27 private var timenavplay:Boolean; 26 28 //private var proxy:JavaScriptProxy; 27 29 28 30 var centery:Number; … … 51 53 static private var timenavdepth = 10001; 52 54 static private var dialogdepth = 10003; 55 static private var crosshairdepth = 10004; 53 56 54 57 function worldkitInteraction(main:worldkitMain) { … … 98 101 acceptInput = true; 99 102 } 103 104 mc.attachMovie("worldkitCrosshair", "crosshair", crosshairdepth); 105 mc.crosshair.parent = this; 106 mc.crosshair._xscale = 100 * 100 * 2/conf.w; 107 mc.crosshair._yscale = 100 * 100 * 2/conf.w; 108 if (! conf.inputonly) { 109 mc.crosshair._alpha = 0; 110 } 111 112 //proxy = new JavaScriptProxy(); 100 113 } 101 114 … … 195 208 mc.toolbar[ b[i] ].onReleaseOutside = function() { this.parent.zoompan = ""; this._alpha = this.parent.conf.controlalpha; } 196 209 mc.toolbar[ b[i] ]._alpha = conf.controlalpha; 210 } 211 mc.toolbar["DragOn"].parent = this; 212 mc.toolbar["DragOff"].parent = this; 213 mc.toolbar["PanOn"].parent = this; 214 mc.toolbar["PanOff"].parent = this; 215 mc.toolbar["DragOff"].onPress = function() { 216 this.parent.conf.zoomselect = true; 217 this.parent.conf.grabber = false; 218 this.parent.mc.toolbar["PanOn"]._visible = 0; 219 this.parent.mc.toolbar["DragOn"]._visible = 1; 220 } 221 mc.toolbar["PanOff"].onPress = function() { 222 this.parent.conf.zoomselect = false; 223 this.parent.conf.grabber = true; 224 this.parent.mc.toolbar["PanOn"]._visible = 1; 225 this.parent.mc.toolbar["DragOn"]._visible = 0; 226 } 227 if (conf.zoomselect) { 228 mc.toolbar["PanOn"]._visible = 0; 229 } else { 230 mc.toolbar["DragOn"]._visible = 0; 197 231 } 198 232 } else { … … 232 266 acceptInput = false; 233 267 rss.inputToggle(acceptInput); 268 Mouse.show(); 269 mc.crosshair._alpha = 0; 234 270 } else { 235 271 acceptInput = true; 236 272 rss.inputToggle(acceptInput); 273 Mouse.hide(); 274 mc.crosshair._alpha = 100; 237 275 } 238 276 } … … 243 281 } 244 282 zoompan = ""; 283 if (conf.onzoompan) { 284 var args = "extent=" + cwest + "," + csouth + "," + ceast + "," + cnorth; 285 //getURL( conf.onzoompan + "(\"" + args + "\");" ); 286 ExternalInterface.call( conf.onzoompan.substr(11), args); 287 } 245 288 } 246 289 … … 250 293 if (acceptInput == true) { 251 294 252 if (conf.inputonly != true) { acceptInput = false; } 295 if (conf.inputonly != true) { 296 acceptInput = false; 297 mc.crosshair._alpha = 0; 298 Mouse.show(); 299 } 253 300 rss.inputToggle(false); 254 301 annotate(_root._xmouse, _root._ymouse); … … 280 327 281 328 public function onMouseMove():Void { 329 mc.crosshair._x = _root._xmouse; 330 mc.crosshair._y = _root._ymouse; 331 282 332 if (mc.zoombox != undefined) { 283 333 mc.zoombox.clear(); … … 337 387 mc.grabber.removeMovieClip(); 338 388 } 339 } 340 389 390 if (conf.onzoompan) { 391 var args = "extent=" + cwest + "," + csouth + "," + ceast + "," + cnorth; 392 //getURL( conf.onzoompan + "(\"" + args + "\");" ); 393 ExternalInterface.call( conf.onzoompan.substr(11), args); 394 395 } 396 } 397 398 public function onMouseWheel(delta:Number):Void { 399 // centery -= delta/(scale); 400 // Pan(); 401 if (delta > 0) { delta = 1; } else { delta = -1; } 402 scale = scale * (Math.pow(conf.zoomc, delta)); 403 if (scale > conf.maxscale) { 404 scale = conf.maxscale; 405 } else if (scale < 1) { 406 scale = 1; 407 } 408 Zoom(); 409 } 341 410 342 411 public function onEnterFrame():Void { … … 384 453 Zoom(); 385 454 zoompan = ""; 455 if (conf.onzoompan) { 456 var args = "extent=" + cwest + "," + csouth + "," + ceast + "," + cnorth; 457 ExternalInterface.call( conf.onzoompan.substr(11), args); 458 //getURL(conf.onzoompan + "(\"" + args + "\");" ); 459 } 386 460 break; 387 461 … … 512 586 fscommand(tmp[1], jsargs); 513 587 } else { 514 getURL( window.substr(1) + "(\"" + jsargs + "\");" ); 588 //proxy.call( window.substr(12), jsargs); 589 //getURL( window.substr(1) + "(\"" + jsargs + "\");" ); 590 ExternalInterface.call(window.substr(12), jsargs); 515 591 } 516 592 } else { … … 549 625 fscommand(tmp[1], args); 550 626 } else { 551 getURL( conf.annotateurl + "(\"" + args + "\")" ); 627 //proxy.call( conf.annotateurl.substr(11), args); 628 //getURL( conf.annotateurl + "(\"" + args + "\")" ); 629 ExternalInterface.call( conf.onzoompan.substr(11), args); 630 552 631 } 553 632 } else { … … 565 644 _root.JZoomComm = ""; 566 645 _root.JActComm = ""; 646 _root.JItemActComm = ""; 567 647 _root.JAnnoComm = ""; 568 648 _root.JHackComm = ""; 569 649 _root.JInputComm = ""; 570 650 _root.JGetItemComm = ""; 651 _root.JNavmodecomm = ""; 652 _root.JGetExtentComm = ""; 571 653 _root.watch("JComm",worldkitInteraction.onJavascript,this); 572 654 _root.watch("JSubComm", worldkitInteraction.onJavascript,this); … … 576 658 _root.watch("JZoomComm", worldkitInteraction.onJavascript,this); 577 659 _root.watch("JActComm", worldkitInteraction.onJavascript,this); 660 _root.watch("JItemActComm", worldkitInteraction.onJavascript,this); 578 661 _root.watch("JAnnoComm", worldkitInteraction.onJavascript,this); 579 662 _root.watch("JHackComm", worldkitInteraction.onJavascript,this); 580 663 _root.watch("JInputComm", worldkitInteraction.onJavascript,this); 581 664 _root.watch("JGetItemComm", worldkitInteraction.onJavascript,this); 665 _root.watch("JNavmodeComm", worldkitInteraction.onJavascript,this); 666 _root.watch("JGetExtentComm", worldkitInteraction.onJavascript,this); 582 667 } 583 668 … … 628 713 rss.onJActComm(newVal); 629 714 } 715 public function onJItemActComm(newVal) { 716 rss.onJItemActComm(newVal); 717 } 630 718 public function onJLoadComm(newVal) { 631 719 rss.onJLoadComm(newVal); … … 652 740 public function onJGetItemComm(newVal) { 653 741 rss.onJGetItemComm(newVal); 742 } 743 public function onJNavmodeComm(newVal) { 744 if (newVal == "zoomselect") { 745 conf.zoomselect = true; 746 conf.grabber = false; 747 } else if (newVal == "grabber") { 748 conf.grabber = true; 749 conf.zoomselect = false; 750 } 751 } 752 public function onJGetExtentComm(newVal) { 753 var args = "extent=" + cwest + "," + csouth + "," + ceast + "," + cnorth + "&" + "zoom=" + scale; 754 ExternalInterface.call( newVal, args); 755 _root.JGetExtentComm = ""; 654 756 } 655 757 public function SetupTimenav():Void { worldkit/com/brainoff/worldkitMain.as
r13 r14 7 7 8 8 class com.brainoff.worldkitMain { 9 static var version:String = "3.0- 08052006";9 static var version:String = "3.0-28122006"; 10 10 11 11 var conf:worldkitConfig; worldkit/com/brainoff/worldkitRSS.as
r10 r14 23 23 private var prevlat:Object; 24 24 private var prevlon:Object; 25 private var lastRequest:Boolean; 26 private var intervalId:Number; 25 27 26 28 function worldkitRSS(main:worldkitMain) { … … 71 73 } 72 74 if (conf.update > 0) { 73 setInterval( this, "loadData", conf.update * 1000, conf.updateurl);75 intervalId = setInterval( this, "loadData", conf.update * 1000, conf.updateurl); 74 76 } 75 77 interact.LoadingDialog(conf.loadrssmsg); 78 } 79 if (conf.fade != -1) { 80 setInterval( this, "setAlphaFade", 60000); 76 81 } 77 82 } 78 83 79 84 public function loadData(url:String):Void { 85 if (conf.resultssince == true && lastRequest == true) { 86 if (url.indexOf("?") == -1) { url = url + "?"; } 87 //url = url + "&" + lastRequest; 88 var age = Math.ceil(conf.update / 60000); 89 url = url + "&age=" + age.toString(); //age is mc specific.... 90 } 91 if (conf.rssbbox == true) { 92 if (url.indexOf("?") == -1) { url = url + "?"; } 93 var bbox = interact.cwest + "," + interact.csouth + "," + interact.ceast + "," + interact.cnorth; 94 url = url + "&bbox=" + bbox; 95 96 } 80 97 if (conf.uniqueurls == true) { 81 98 var d = new Date(); … … 89 106 rss.onLoad(this,success); 90 107 } 108 lastRequest = true; //new Date(); //set to now 91 109 loader.load(url); 110 92 111 } 93 112 … … 175 194 176 195 private function parseItem(node:XMLNode):Void { 177 var e="", n="", u="", g="", lat="", lon="", v="", photo="", id="", nv="", nn=n, attr="", dt=undefined, edt=undefined, list:String=undefined, type="" ;196 var e="", n="", u="", g="", lat="", lon="", v="", photo="", id="", nv="", nn=n, attr="", dt=undefined, edt=undefined, list:String=undefined, type="", icon=undefined; 178 197 var sub=new Array(); 179 198 … … 264 283 case("georss:polygon"): 265 284 list = nv; 266 type = "poly gon";285 type = "poly"; 267 286 break; 268 287 case("georss:box"): … … 283 302 } else if (node.childNodes[l].firstChild.nodeName == "gml:Polygon") { 284 303 list = node.childNodes[l].firstChild.firstChild.firstChild.firstChild.firstChild.nodeValue; 285 type = "poly gon";304 type = "poly"; 286 305 } else if (node.childNodes[l].firstChild.nodeName == "gml:Envelope") { 287 306 list = node.childNodes[l].firstChild.childNodes[0].firstChild.nodeValue + " " + node.childNodes[l].firstChild.childNodes[1].firstChild.nodeValue; … … 317 336 photo = nv; 318 337 break; 338 case("media:icon"): 339 icon = nv; 340 break; 319 341 case("pubdate"): //RSS 2.0 320 342 case("issued"): //Atom … … 331 353 } 332 354 break; 355 case("metacarta:geoextract"): 356 v = v + "<br/><font color='#ff0000'>" + nv + "</font>"; 357 break; 333 358 default: 334 359 } … … 342 367 if (lat != "" && lon != "") { 343 368 g = lat + "," + lon; 344 } else if ( type == "poly" || type == "line") {369 } else if (list != "") { 345 370 var listtmp = list.split(" "); 346 371 lat = listtmp[0]; lon = listtmp[1]; … … 364 389 sub.push("_default_"); 365 390 366 if ((g != "" && interact.pointOnMap(lat,lon)) || (Points[id] != undefined) ) {391 if ((g != "" && interact.pointOnMap(lat,lon)) || (Points[id] != undefined) || (type != "")) { 367 392 if (Points[id] == undefined) { 368 393 var plat,plon; … … 375 400 } 376 401 377 Points[id] = new worldkitAnnotation(main,mc.rss,depth,n,u,lat,lon,v,sub,id,photo,plat,plon,list,type,dt,undefined,edt );402 Points[id] = new worldkitAnnotation(main,mc.rss,depth,n,u,lat,lon,v,sub,id,photo,plat,plon,list,type,dt,undefined,edt,icon); 378 403 379 404 if (conf.plotinterval == 0) { … … 387 412 388 413 if (conf.maxzoom) { 389 interact.recordExtremes(lat,lon); 414 if (type == "poly" || type == "line") { 415 var varray = list.split(" "); 416 for (var i=0; i<varray.length-1; i+=2) { 417 interact.recordExtremes(varray[i],varray[i+1]); 418 } 419 } else { 420 interact.recordExtremes(lat,lon); 421 } 390 422 } 391 423 //record time extremes? … … 484 516 } 485 517 518 public function setAlphaFade():Void { 519 var now:Date = new Date(); 520 for (var p in Points) { 521 Points[p].setAlphaFade(now); 522 } 523 } 524 486 525 public function setActive(nowActive:worldkitAnnotation):Void { 487 526 var a = activeAnnotation; … … 519 558 } 520 559 } 560 public function onJItemActComm(id:String):Void { 561 Points[id].forceActivate(); 562 } 521 563 public function onJLoadComm(action:String):Void { 522 564 if (action == "updateurl") { … … 529 571 clear(); 530 572 } else if (action != "") { 531 loadData(action); 573 conf.updateurl = action; 574 lastRequest = false; 575 if (conf.update > 0) { 576 if (intervalId) { 577 clearInterval(intervalId); 578 } 579 intervalId = setInterval( this, "loadData", conf.update * 1000, conf.updateurl); 580 } 581 loadData(conf.updateurl); 532 582 interact.LoadingDialog(conf.loadrssmsg); 533 583 }
