Package ucar.unidata.data.gis
Class KmlDataSource
java.lang.Object
ucar.unidata.collab.SharableImpl
ucar.unidata.data.DataSourceImpl
ucar.unidata.data.FilesDataSource
ucar.unidata.data.gis.KmlDataSource
- All Implemented Interfaces:
Sharable
,DataSource
,DataSourceFactory
,XmlPersistable
DataSource for Web Map Servers
- Version:
- $Revision: 1.38 $ $Date: 2007/04/16 20:34:52 $
- Author:
- IDV development team
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
xml attributestatic final String
xml attributeprotected List
A local cacheprotected List
The urlsstatic final String
For ximg filesstatic final PatternFileFilter
For ximg filesstatic final String
For ximg filesstatic final String
kml tag idstatic final String
kml tag idstatic final String
kml tag idstatic final String
xml tagstatic final String
xml tagstatic final String
static final String
xml tagstatic final String
kml tag idstatic final String
kml tag idstatic final String
kml tag idstatic final String
kml tagstatic final String
kml tag idstatic final String
xml tagstatic final String
kml tag idstatic final String
xml tagFields inherited from class ucar.unidata.data.FilesDataSource
adapters, oldSourceFromBundles, sources
Fields inherited from class ucar.unidata.data.DataSourceImpl
changeDataPathsCbx, dataCacheKey, dataChoices, geoSelectionPanel, haveBeenUnPersisted, okToContinue, PARAM_SHOW_HIDE, PARAM_SHOW_NO, PARAM_SHOW_YES
Fields inherited from interface ucar.unidata.data.DataSource
DATAPATH_DATE_FORMAT, DATAPATH_DATE_PATTERN, MOST_RECENT, ordinalNames, PROP_AUTOCREATEDISPLAY, PROP_BASEDIRECTORY, PROP_CACHEABLE, PROP_DATACHOICENAME, PROP_DISPLAYPROPERTIES, PROP_DOCUMENTLINKS, PROP_FILEPATTERN, PROP_GEOLOCATION, PROP_ICON, PROP_NAME, PROP_POLLINFO, PROP_RESOLVERURL, PROP_SERVICE_HTTP, PROP_SUBPROPERTIES, PROP_TIMELABELS, PROP_TIMESTRIDE, PROP_TITLE
-
Constructor Summary
ConstructorsConstructorDescriptionDummy constructor so this object can get unpersisted.KmlDataSource
(DataSourceDescriptor descriptor, String kmlUrl, Hashtable properties) Create a KmlDataSource from the specification given. -
Method Summary
Modifier and TypeMethodDescriptionstatic String
createKml
(GeoLocationInfo bounds, String imageFileName) Create some kml from the given bounds and image filestatic void
createLatLonBox
(GeoLocationInfo bounds, StringBuffer sb) Utility to create a latlonbox kmlprotected void
Create the data choices associated with this source.protected List
Create a list of times for this data source.void
expandIfNeeded
(CompositeDataChoice parent) Expand the data choice if its a networklinkprotected Data
getDataInner
(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) Actually get the data identified by the given DataChoce.protected InputStream
getInputStream
(String path) Create the input stream.void
Initialize after we have been unpersistedstatic boolean
Is this a kml or kmz filestatic void
test mainprotected byte[]
Utility to read the bytes from the file or urlprotected Image
Read the imagevoid
reloadvoid
Set the KmlUrl property.protected boolean
shouldCache
(Data data) See if this DataSource should cache or notstatic void
writeToFile
(String kmlFilename, GeoLocationInfo bounds, String imageFileName) write image as a kml to fileMethods inherited from class ucar.unidata.data.FilesDataSource
doRemove, equals, getDataFileExtension, getDataPaths, getFilePath, getFullDescription, getInputStreams, getLocationsForPolling, getPartialDescription, getSource, getSources, haveSources, initAfterCreation, initWithPollingInfo, isFileBased, newFilesFromPolling, processDataFilename, propertiesChanged, reloadData, saveDataToLocalDisk, setNewFiles, setSource, setSources, sourcesChanged, updateState
Methods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addPropertiesTabs, addReloadTab, applyFieldMask, applyProperties, beginWritingDataToLocalDisk, canAddCurrentName, canCacheDataToDisk, canChangeData, canDoAllLevels, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canSaveDataToLocalDisk, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertSourceFile, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, endWritingDataToLocalDisk, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllDateTimes, getAllDateTimes, getAllLevels, getAllLevels, getAllTimesForTimeDriver, getCache, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataIsEditable, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDefaultSave, getDescription, getDescriptor, getErrorMessage, getEverChangedName, getExtraGeoSelectionComponent, getExtraTimesComponent, getFileFilterForPolling, getid, getIdv, getInError, getLocalDirectory, getLocationForPolling, getMostRecentFiles, getName, getNameForDataSource, getNeedToShowErrorToUser, getNextId, getOutstandingGetDataCalls, getPassword, getPathsThatCanBeRelative, getPollingInfo, getProperties, getPropertiesComponents, getPropertiesHeader, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getRelativePaths, getSampleDataProjection, getSaveDataFileLabel, getSelectedDateTimes, getSelectedDateTimes, getTimesFromDataSelection, getTmpPaths, getTypeName, getUserName, handlePropertiesAction, hasPollingInfo, holdsDateTimes, holdsIndices, identifiedBy, identifiedByName, incrOutstandingGetDataCalls, initAfter, initDataChoice, initDataSelectionComponents, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeDerivedDataChoices, makeSaveLocalActions, newFileFromPolling, notifyDataChange, putCache, putCache, reloadProperties, removeCache, removeDataChangeListener, removeDataChoice, removeProperty, replaceDataChoice, resetTmpState, saveDataToLocalDisk, saveDataToLocalDisk, selectTimesFromList, setAlias, setAskToUpdate, setCacheClearDelay, setCacheDataToDisk, setDataEditableStrings, setDataIsEditable, setDataIsRelative, setDataRelativeStrings, setDataSelection, setDateTimeSelection, setDefaultSave, setDescription, setDescriptor, setDirectory, setEverChangedName, setInError, setInError, setInError, setName, setObjectProperties, setObjectProperty, setPassword, setPollingInfo, setPollLocation, setProperties, setProperty, setProperty, setRelativePaths, setTemplateName, setTmpPaths, setUserName, shouldCache, showPasswordDialog, showPropertiesDialog, showPropertiesDialog, showPropertiesDialog, showWaitDialog, tick, toString, toStringTruncated, updateDetailsText, writeFieldMaskFile, writeFieldMaskFile
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, setShareGroup, setSharing, setUniqueId, showSharableDialog
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ucar.unidata.data.DataSource
getUniqueId
-
Field Details
-
FILTER_KML
For ximg files -
EXT_KML
For ximg files- See Also:
-
SUFFIX_KML
For ximg files- See Also:
-
ATTR_PARENT
xml attribute- See Also:
-
ATTR_NAME
xml attribute- See Also:
-
TAG_GROUNDOVERLAY
kml tag id- See Also:
-
TAG_PHOTOOVERLAY
kml tag- See Also:
-
TAG_URL
xml tag- See Also:
-
TAG_HREF
xml tag- See Also:
-
TAG_LINK
xml tag- See Also:
-
TAG_LINESTRING
- See Also:
-
TAG_SCHEMA
xml tag- See Also:
-
TAG_NETWORKLINK
kml tag id- See Also:
-
TAG_MULTIGEOMETRY
kml tag id- See Also:
-
TAG_DOCUMENT
kml tag id- See Also:
-
TAG_FOLDER
kml tag id- See Also:
-
TAG_KML
xml tag- See Also:
-
TAG_PLACEMARK
kml tag id- See Also:
-
TAG_NAME
kml tag id- See Also:
-
TAG_STYLEURL
kml tag id- See Also:
-
cachedData
A local cache -
cachedUrls
The urls
-
-
Constructor Details
-
KmlDataSource
public KmlDataSource()Dummy constructor so this object can get unpersisted. -
KmlDataSource
public KmlDataSource(DataSourceDescriptor descriptor, String kmlUrl, Hashtable properties) throws VisADException Create a KmlDataSource from the specification given.- Parameters:
descriptor
- descriptor for the data sourcekmlUrl
- Where the kml came fromproperties
- extra properties- Throws:
VisADException
- some problem occurred creating data
-
-
Method Details
-
reloadData
public void reloadData()reload- Specified by:
reloadData
in interfaceDataSource
- Overrides:
reloadData
in classFilesDataSource
-
initAfterUnpersistence
public void initAfterUnpersistence()Initialize after we have been unpersisted- Specified by:
initAfterUnpersistence
in interfaceDataSource
- Overrides:
initAfterUnpersistence
in classFilesDataSource
-
readImage
Read the image- Parameters:
url
- image urlbaseUrl
- Where the kml came from_- Returns:
- The image
-
readBytes
Utility to read the bytes from the file or url- Parameters:
path
- file or url- Returns:
- bytes
- Throws:
Exception
- On badness
-
getInputStream
Create the input stream. Handle the case when it is a zip file- Parameters:
path
- file or url- Returns:
- input stream to kml file
- Throws:
Exception
- On badness
-
doMakeDataChoices
protected void doMakeDataChoices()Create the data choices associated with this source.- Overrides:
doMakeDataChoices
in classDataSourceImpl
-
expandIfNeeded
Expand the data choice if its a networklink- Specified by:
expandIfNeeded
in interfaceDataSource
- Overrides:
expandIfNeeded
in classDataSourceImpl
- Parameters:
parent
- data choice
-
getDataInner
protected Data getDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) throws VisADException, RemoteException Actually get the data identified by the given DataChoce. The default is to call the getDataInner that does not take the requestProperties. This allows other, non unidata.data DataSource-s (that follow the old API) to work.- Overrides:
getDataInner
in classDataSourceImpl
- Parameters:
dataChoice
- The data choice that identifies the requested data.category
- The data category of the request.dataSelection
- Identifies any subsetting of the data.requestProperties
- Hashtable that holds any detailed request properties.- Returns:
- The visad.Data object
- Throws:
RemoteException
- Java RMI problemVisADException
- VisAD problem
-
shouldCache
See if this DataSource should cache or not- Overrides:
shouldCache
in classDataSourceImpl
- Parameters:
data
- Data to cache- Returns:
- false
-
doMakeDateTimes
Create a list of times for this data source. Since shapefiles don't have any times, return an empty List.- Overrides:
doMakeDateTimes
in classDataSourceImpl
- Returns:
- an empty List
-
setKmlUrl
Set the KmlUrl property.- Parameters:
value
- The new value for KmlUrl
-
isKmlFile
Is this a kml or kmz file- Parameters:
filename
- file- Returns:
- Is this a kml or kmz file
-
writeToFile
public static void writeToFile(String kmlFilename, GeoLocationInfo bounds, String imageFileName) throws FileNotFoundException, IOException write image as a kml to file- Parameters:
kmlFilename
- kml filenamebounds
- _image boundsimageFileName
- image filename- Throws:
FileNotFoundException
- On badnessIOException
- On badness
-
createKml
public static String createKml(GeoLocationInfo bounds, String imageFileName) throws FileNotFoundException, IOException Create some kml from the given bounds and image file- Parameters:
bounds
- boundsimageFileName
- image- Returns:
- kml
- Throws:
FileNotFoundException
- On badnessIOException
- On badness
-
createLatLonBox
Utility to create a latlonbox kml- Parameters:
bounds
- boundssb
- buffer to add to
-
main
test main- Parameters:
args
- cmd line args
-