source: subversion/applications/editors/potlatch/photos.as

Last change on this file was 19957, checked in by richard, 10 years ago

duplicate nodes stuff

File size: 2.8 KB
Line 
1
2        function Photo() {
3        };
4
5        Photo.prototype.init=function(lat,lon,thumb,desc,name) {
6                this._x=long2coord(lon);
7                this._y=lat2coord(lat); 
8                this._xscale=this._yscale=Math.max(100/Math.pow(2,_root.scale-_root.flashscale),2);
9                this.thumb=thumb; this.desc=desc; this.name=name;
10        };
11       
12        Photo.prototype.onPress=function() {
13                var ppos=new Object(); ppos.x=this._x; ppos.y=this._y;
14                _root.map.localToGlobal(ppos);
15                palettedepth++; var pn="p"+palettedepth;
16                _root.palettes.attachMovie("palette",pn,palettedepth);
17                _root.palettes[pn].initHTML(ppos.x, ppos.y, this.name, this.desc);
18        };
19       
20        Object.registerClass("photo",Photo);
21
22
23
24        // ================================================================
25        // Support functions
26       
27
28        // loadPhotos
29
30        function loadPhotos() {
31                var kmldoc=new XML();
32                kmldoc.load(preferences.data.photokml+"?bbox="+_root.edge_l+","+_root.edge_b+","+_root.edge_r+","+_root.edge_t);
33                kmldoc.onLoad=function() {
34                        // find level2 - <kml>
35                        var level1=this.childNodes;
36                        for (i=0; i<level1.length; i+=1) {
37                                if (level1[i].nodeName=='kml') {
38
39                                        // find level3 - <Document>
40                                        var level2=level1[i].childNodes;
41                                        for (j=0; j<level2.length; j+=1) {
42                                                if (level2[j].nodeName=='Document') {
43
44                                                        // find level4 - <Placemark>
45                                                        var level3=level2[j].childNodes;
46                                                        for (k=0; k<level3.length; k+=1) {
47                                                                if (level3[k].nodeName=='Placemark') {
48
49                                                                        // individual elements of Placemark
50                                                                        var p_name,p_icon,p_desc,p_lat,p_lon;
51                                                                        var level4=level3[k].childNodes;
52                                                                        for (l=0; l<level4.length; l+=1) {
53                                                                                switch (level4[l].nodeName) {
54                                                                                        case 'description':     p_desc=level4[l].childNodes[1].nodeValue; break;                // <description><![CDATA [...html...]]></description>
55                                                                                        case 'name':            p_name=level4[l].firstChild.nodeValue; break;           // <name>icon5.jpg</name>
56                                                                                        case 'Icon':            p_icon=getElement(level4[l],'href'); break;             // <Icon><href>http://a.com/b.jpg</href></Icon>
57                                                                                        case 'Point':           var p =getElement(level4[l],'coordinates');             // <Point><coordinates>1.5,51.2</coordinates></Point>
58                                                                                                                                var c =p.split(','); p_lon=c[0]; p_lat=c[1]; break;
59                                                                                }
60                                                                        }
61
62                                                                        // place photo
63                                                                        if (p_icon && !_root.map.photos[innocent(p_icon)]) {
64                                                                                var n=innocent(p_icon);
65                                                                                _root.map.photos.attachMovie("photo",n,++photodepth);
66                                                                                _root.map.photos[n].init(p_lat,p_lon,p_icon,p_desc,p_name);
67                                                                        }
68                                                                }
69                                                        }
70                                                }
71                                        }
72                                }
73                        }
74                };
75        }
76
77        function getElement(xmlobj,el) {
78                var a=xmlobj.childNodes; var r=null;
79                for (var i=0; i<a.length; i++) {
80                        if (a[i].nodeName==el) { r=a[i].firstChild.nodeValue; }
81                }
82                return r;
83        }
84
85        // remove non-alphanumerics
86        function innocent(a) {
87                var b='';
88                for (var i=0; i<a.length; i++) {
89                        var c=a.substr(i,1); if ((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9') || c=='_') { b+=c; }
90                }
91                return b;
92        }
Note: See TracBrowser for help on using the repository browser.