home *** CD-ROM | disk | FTP | other *** search
Wrap
function exportMaps(expType){ var expTypeData; var expTypeExt; switch(expType) { case "csv": expTypeData = exportCsv(); expTypeExt = 'csv' break; case "csvsel": expTypeData = exportCsvSel(); expTypeExt = 'csv' break; case "kml": expTypeData = exportKml(); expTypeExt = 'kml' break; case "kmlsel": expTypeData = exportKmlSel(); expTypeExt = 'kml' break; case "gpx": expTypeData = exportGpx(); expTypeExt = 'gpx' break; case "gpxsel": expTypeData = exportGpxSel(); expTypeExt = 'gpx' break; case "minimap": expTypeData = exportMinimap(); expTypeExt = 'minimap' break; case "minimapsel": expTypeData = exportMinimapSel(); expTypeExt = 'minimap' break; } const nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); fp.init(window, "Export to file ", nsIFilePicker.modeSave); fp.appendFilter(expTypeExt+" Files","*."+expTypeExt); fp.defaultString = "map_export."+expTypeExt; var rv = fp.show(); if (rv != nsIFilePicker.returnOK && rv != nsIFilePicker.returnReplace) { return false; } var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithFile(fp.file); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); var charset = "UTF-8"; // Can be any character encoding name that Mozilla supports var os = Components.classes["@mozilla.org/intl/converter-output-stream;1"] .createInstance(Components.interfaces.nsIConverterOutputStream); // This assumes that fos is the nsIOutputStream you want to write to os.init(foStream, charset, 0, 0x0000); os.writeString(expTypeData); // etc. os.close(); //foStream.write(text,text.length); foStream.close(); } function exportKml(){ var allAddresses = '<?xml version="1.0" encoding="UTF-8"?>\n'; allAddresses += '<kml xmlns="http://earth.google.com/kml/2.2">\n'; allAddresses += '<Document>\n' var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var data = mapsPlacemarks(node); allAddresses += '\t<Placemark>\n'; allAddresses += '\t\t<name><![CDATA['+data.title+']]></name>\n'; allAddresses += '\t\t<description><![CDATA['+data.desc+']]></description>\n'; allAddresses += '\t\t<Point>\n'; allAddresses += '\t\t\t<coordinates>'+data.lng+','+data.lat+'</coordinates>\n'; allAddresses += '\t\t</Point>\n'; allAddresses += '\t\t<address><![CDATA['+data.address+']]></address>\n'; allAddresses += '\t</Placemark>\n'; } allAddresses += '</Document>\n</kml>'; return allAddresses; } function exportKmlSel(){ var allAddresses = '<?xml version="1.0" encoding="UTF-8"?>\n'; allAddresses += '<kml xmlns="http://earth.google.com/kml/2.2">\n'; allAddresses += '<Document>\n' var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var data = mapsPlacemarks(node); allAddresses += '\t<Placemark>\n'; allAddresses += '\t\t<name><![CDATA['+data.title+']]></name>\n'; allAddresses += '\t\t<description><![CDATA['+data.desc+']]></description>\n'; allAddresses += '\t\t<Point>\n'; allAddresses += '\t\t\t<coordinates>'+data.lng+','+data.lat+'</coordinates>\n'; allAddresses += '\t\t</Point>\n'; allAddresses += '\t\t<address><![CDATA['+data.address+']]></address>\n'; allAddresses += '\t</Placemark>\n'; } allAddresses += '</Document>\n</kml>'; return allAddresses; } function exportCsv(){ var allAddresses = '"Title","Location","URL","Description","Lat","Lng","Accuracy","Altitude","Country","State","County","Locality","Street","Postal Code"'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var data = mapsPlacemarks(node); allAddresses += '\n"' allAddresses += data.title+'","'; allAddresses += data.address+'","'; allAddresses += data.url+'","'; allAddresses += data.desc+'","'; allAddresses += data.lat+'","'; allAddresses += data.lng+'","'; allAddresses += data.accuracy+'","'; allAddresses += data.altd+'","'; allAddresses += data.country+'","'; allAddresses += data.state+'","'; allAddresses += data.county+'","'; allAddresses += data.locality+'","'; allAddresses += data.street+'","'; allAddresses += data.postal+'"'; } return allAddresses; } function exportCsvSel(){ var allAddresses = '"Title","Location","URL","Description","Lat","Lng","Accuracy","Altitude","Country","State","County","Locality","Street","Postal Code"'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var data = mapsPlacemarks(node); allAddresses += '\n"' allAddresses += data.title+'","'; allAddresses += data.address+'","'; allAddresses += data.url+'","'; allAddresses += data.desc+'","'; allAddresses += data.lat+'","'; allAddresses += data.lng+'","'; allAddresses += data.accuracy+'","'; allAddresses += data.altd+'","'; allAddresses += data.country+'","'; allAddresses += data.state+'","'; allAddresses += data.county+'","'; allAddresses += data.locality+'","'; allAddresses += data.street+'","'; allAddresses += data.postal+'"'; } return allAddresses; } function exportGpx(){ var allAddresses = '<?xml version="1.0" encoding="Windows-1252" standalone="no" ?>\n'; allAddresses += '<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="byHand" version="1.1" \n'; allAddresses += '\txmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n'; allAddresses += '\txsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">\n'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var data = mapsPlacemarks(node); allAddresses += '\t<wpt lat="'+data.lat+'" lon="'+data.lng+'">\n'; allAddresses += '\t\t<ele>'+data.altd+'</ele>\n'; allAddresses += '\t\t<time></time>\n'; allAddresses += '\t\t<name><![CDATA['+data.title+']]></name>\n'; allAddresses += '\t\t<sym></sym>\n'; allAddresses += '\t</wpt>\n'; } allAddresses += '</gpx>'; return allAddresses; } function exportGpxSel(){ var allAddresses = '<?xml version="1.0" encoding="Windows-1252" standalone="no" ?>\n'; allAddresses += '<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="byHand" version="1.1" \n'; allAddresses += '\txmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n'; allAddresses += '\txsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">\n'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var data = mapsPlacemarks(node); allAddresses += '\t<wpt lat="'+data.lat+'" lon="'+data.lng+'">\n'; allAddresses += '\t\t<ele>'+data.altd+'</ele>\n'; allAddresses += '\t\t<time></time>\n'; allAddresses += '\t\t<name><![CDATA['+data.title+']]></name>\n'; allAddresses += '\t\t<sym></sym>\n'; allAddresses += '\t</wpt>\n'; } allAddresses += '</gpx>'; return allAddresses; } function exportMinimap(){ var allAddresses = '<?xml version="1.0" encoding="UTF-8"?>\n<Placemarks>\n'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var nodes = container.getChildren(); while ( nodes.hasMoreElements() ) { var node = nodes.getNext(); var data = mapsPlacemarks(node); allAddresses += '\t<Placemark>\n'; allAddresses += '\t\t<title><![CDATA['+data.title+']]></title>\n'; allAddresses += '\t\t<address><![CDATA['+data.address+']]></address>\n'; allAddresses += '\t\t<description><![CDATA['+data.desc+']]></description>\n'; allAddresses += '\t\t<url><![CDATA['+data.url+']]></url>\n'; allAddresses += '\t\t<lat>'+data.lat+'</lat>\n'; allAddresses += '\t\t<lng>'+data.lng+'</lng>\n'; allAddresses += '\t\t<accuracy><![CDATA['+data.accuracy+']]></accuracy>\n'; allAddresses += '\t\t<altd>'+data.altd+'</altd>\n'; allAddresses += '\t\t<country><![CDATA['+data.country+']]></country>\n'; allAddresses += '\t\t<state><![CDATA['+data.state+']]></state>\n'; allAddresses += '\t\t<county><![CDATA['+data.county+']]></county>\n'; allAddresses += '\t\t<locality><![CDATA['+data.locality+']]></locality>\n'; allAddresses += '\t\t<street><![CDATA['+data.street+']]></street>\n'; allAddresses += '\t\t<postal><![CDATA['+data.postal+']]></postal>\n'; allAddresses += '\t</Placemark>\n'; } allAddresses += '</Placemarks>'; return allAddresses; } function exportMinimapSel(){ var allAddresses = '<?xml version="1.0" encoding="UTF-8"?>\n<Placemarks>\n'; var ds = flock_mapsGetDS(); var container = ds.getNode("urn:flock:maps:addresses"); var tree = $('address_list'); var treeSelection = flock_getTreeSelection(tree, ["idCol"]); for (var i = 0; i < treeSelection.length; ++i) { var item = treeSelection[i]; var objectId = item["idCol"]; var node = ds.getNode(objectId); var data = mapsPlacemarks(node); allAddresses += '\t<Placemark>\n'; allAddresses += '\t\t<title><![CDATA['+data.title+']]></title>\n'; allAddresses += '\t\t<address><![CDATA['+data.address+']]></address>\n'; allAddresses += '\t\t<description><![CDATA['+data.desc+']]></description>\n'; allAddresses += '\t\t<url><![CDATA['+data.url+']]></url>\n'; allAddresses += '\t\t<lat>'+data.lat+'</lat>\n'; allAddresses += '\t\t<lng>'+data.lng+'</lng>\n'; allAddresses += '\t\t<accuracy><![CDATA['+data.accuracy+']]></accuracy>\n'; allAddresses += '\t\t<altd>'+data.altd+'</altd>\n'; allAddresses += '\t\t<country><![CDATA['+data.country+']]></country>\n'; allAddresses += '\t\t<state><![CDATA['+data.state+']]></state>\n'; allAddresses += '\t\t<county><![CDATA['+data.county+']]></county>\n'; allAddresses += '\t\t<locality><![CDATA['+data.locality+']]></locality>\n'; allAddresses += '\t\t<street><![CDATA['+data.street+']]></street>\n'; allAddresses += '\t\t<postal><![CDATA['+data.postal+']]></postal>\n'; allAddresses += '\t</Placemark>\n'; } allAddresses += '</Placemarks>'; return allAddresses; } function mapsPlacemarks(node){ var data ={}; try{data.address = node.getTarget(_mns('location')).getValue();}catch(e){data.address='';} try{data.title = node.getTarget(_mns('title')).getValue();}catch(e){data.title='';} try{data.url = node.getTarget(_mns('sourceurl')).getValue();}catch(e){data.url='';} try{data.desc = node.getTarget(_mns('description')).getValue();}catch(e){data.desc='';} try{data.lat = parseFloat(node.getTarget(_mns('lat')).getValue());}catch(e){data.lat='';} try{data.lng = parseFloat(node.getTarget(_mns('lng')).getValue());}catch(e){data.lng='';} try{data.accuracy = node.getTarget(_mns('accuracy')).getValue();}catch(e){data.accuracy='';} try{data.altd = node.getTarget(_mns('altd')).getValue();}catch(e){data.altd='';} try{data.country = node.getTarget(_mns('country')).getValue();}catch(e){data.country='';} try{data.state = node.getTarget(_mns('state')).getValue();}catch(e){data.state='';} try{data.county = node.getTarget(_mns('county')).getValue();}catch(e){data.county='';} try{data.locality = node.getTarget(_mns('locality')).getValue();}catch(e){data.locality='';} try{data.street = node.getTarget(_mns('street')).getValue();}catch(e){data.street='';} try{data.postal = node.getTarget(_mns('postal')).getValue();}catch(e){data.postal='';} return data; }