示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
 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()
示例#5
0
 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)
示例#6
0
 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()