def downloadLocationsKml(self, path='', geo_types=None, geo_query='', REQUEST=None): """Returns the selected locations as a KML file""" path = path or '/' output = [] out_app = output.append kml = kml_generator() out_app(kml.header()) out_app(kml.style()) for loc in self.searchGeoPoints(path, geo_types, geo_query): if loc.latitude is not None and loc.longitude is not None: out_app(kml.add_point(self.utToUtf8(loc.getId()), self.utXmlEncode(loc.title), self.utXmlEncode(loc.description), '%s/getSymbolPicture?id=%s' % (self.absolute_url(), self.utToUtf8(loc.geo_type)), self.utToUtf8(loc.longitude), self.utToUtf8(loc.latitude), self.utXmlEncode(self.getSymbolTitle(loc.geo_type)), self.utToUtf8(self.absolute_url()), self.utToUtf8(loc.absolute_url()), self.utToUtf8(loc.url), self.utXmlEncode(loc.address))) out_app(kml.footer()) REQUEST.RESPONSE.setHeader('Content-Type', 'application/vnd.google-earth.kml+xml') REQUEST.RESPONSE.setHeader('Content-Disposition', 'attachment;filename=locations.kml') return '\n'.join(output)
def downloadLocationsKml(self, REQUEST): """Returns the selected locations as a KML file""" output = [] out_app = output.append kml = kml_generator() out_app(kml.header()) out_app(kml.style()) for loc in self.search_geo_objects(REQUEST=REQUEST): if loc.geo_location is not None: try: loc_url = loc.url except AttributeError: loc_url = '' out_app(kml.add_point(self.utToUtf8(loc.getId()), self.utXmlEncode(loc.title_or_id()), self.utXmlEncode(loc.description), '%s/getSymbolPicture?id=%s' % (self.absolute_url(), self.utToUtf8(loc.geo_type)), self.utToUtf8(loc.geo_location.lon), self.utToUtf8(loc.geo_location.lat), self.utXmlEncode(self.getSymbolTitle(loc.geo_type)), self.utToUtf8(self.absolute_url()), self.utToUtf8(loc.absolute_url()), self.utToUtf8(loc_url), self.utXmlEncode(loc.geo_location.address))) out_app(kml.footer()) REQUEST.RESPONSE.setHeader('Content-Type', 'application/vnd.google-earth.kml+xml') REQUEST.RESPONSE.setHeader('Content-Disposition', 'attachment;filename=locations.kml') return '\n'.join(output)
def downloadLocationsKml2(self, arrStakeholders='', arrSupplyChains='', arrAdministrativeLevels='', arrLandscapeTypes='', path='', geo_types=None, geo_query=None, REQUEST=None): """Returns the selected locations as a KML file""" path = path or '/' arr_geo_types = [] if arrStakeholders: arr_geo_types.extend( arrStakeholders.split(',') ); if arrSupplyChains: arr_geo_types.extend( arrSupplyChains.split(',') ); landscape_types = [] if arrLandscapeTypes: landscape_types = arrLandscapeTypes.split(','); else: landscape_types = [] administrative_levels = [] if arrAdministrativeLevels: administrative_levels = arrAdministrativeLevels.split(','); else: administrative_levels = [] output = [] out_app = output.append kml = kml_generator() out_app(kml.header()) out_app(kml.style()) for loc in self.searchGeoPoints(path, arr_geo_types, geo_query, administrative_level=administrative_levels, landscape_type=landscape_types): if loc.latitude is not None and loc.longitude is not None: out_app(kml.add_point(self.utToUtf8(loc.getId()), self.utXmlEncode(loc.title), self.utXmlEncode(loc.description), '%s/getSymbolPicture?id=%s' % (self.absolute_url(), self.utToUtf8(loc.geo_type)), self.utToUtf8(loc.longitude), self.utToUtf8(loc.latitude), self.utXmlEncode(self.getSymbolTitle(loc.geo_type)), self.utToUtf8(self.absolute_url()), self.utToUtf8(loc.absolute_url()), self.utToUtf8(loc.url), self.utXmlEncode(loc.address))) out_app(kml.footer()) REQUEST.RESPONSE.setHeader('Content-Type', 'application/vnd.google-earth.kml+xml') REQUEST.RESPONSE.setHeader('Content-Disposition', 'attachment;filename=locations.kml') return '\n'.join(output)
def close_style(self): """ Return the </style> tag as string so we can get ZMI to let us customize the kml template """ kml = kml_generator() return kml.close_style()
def open_style(self, id): """ Return the <style> tag as string so we can get ZMI to let us customize the kml template """ kml = kml_generator() return kml.open_style(id)
def get_default_style(self): """ Return the style from the beginning of the file as string so we can get ZMI to let us customize the kml template """ kml = kml_generator() return kml.get_default_style()