def calc_url(self): """ Determine the url to use Logic: use lat lon if present otherwise use city and country if present otherwise use description of the place """ place = self._get_first_place()[0] latitude, longitude = self._lat_lon(place) if longitude and latitude: self.url = "http://www.openstreetmap.org/" \ "?lat=%s&lon=%s&zoom=15" % (latitude, longitude) return location = get_main_location(self.database, place) city = location.get(PlaceType.CITY) country = location.get(PlaceType.COUNTRY) if city and country: self.url = "http://nominatim.openstreetmap.org/"\ "search.php?q=%s%%2C%s" % (city, country) return titledescr = place_displayer.display(self.database, place) self.url = "http://nominatim.openstreetmap.org/"\ "search.php?q=%s" % '+'.join(titledescr.split())
def get_subject(self): """ Return a string that describes the subject of the report. """ subject = "" if self.__filter.get_filter().get_name(): # Use the selected filter's name, if any subject += self.__filter.get_filter().get_name() if self.__places.get_value(): # Add places selected individually, if any for place_id in self.__places.get_value().split(): if subject: subject += " + " place = self.__db.get_place_from_gid(place_id) subject += _pd.display(self.__db, place) return subject
def _build_title(db, place): """ Builds descrition string for title parameter in url """ descr = place_displayer.display(db, place) location = get_main_location(db, place) parish = location.get(PlaceType.PARISH) city = location.get(PlaceType.CITY) state = location.get(PlaceType.STATE) title_descr = "" if descr: title_descr += descr.strip() if parish: title_descr += ', ' + parish.strip() + _(" parish") if city: title_descr += ', ' + city.strip() if state: title_descr += ', ' + state.strip() + _(" state") return _strip_leading_comma(title_descr)
def __write_place(self, handle, place_nbr): """ This procedure writes out the details of a single place """ place = self._db.get_place_from_handle(handle) place_details = [self._("GID: %s ") % place.get_gid()] for level in get_location_list(self._db, place): # translators: needed for French, ignore otherwise place_details.append( self._("%(str1)s: %(str2)s") % { 'str1': self._(level[1].xml_str()), 'str2': level[0] }) place_names = '' all_names = place.get_all_names() if len(all_names) > 1 or __debug__: for place_name in all_names: if place_names != '': # translators: needed for Arabic, ignore otherwise place_names += self._(", ") place_names += '%s' % place_name.get_value() if place_name.get_language() != '' or __debug__: place_names += ' (%s)' % place_name.get_language() place_details += [ self._("places|All Names: %s") % place_names, ] self.doc.start_paragraph("PLC-PlaceTitle") place_title = _pd.display(self._db, place) self.doc.write_text(("%(nbr)s. %(place)s") % { 'nbr': place_nbr, 'place': place_title }) self.doc.end_paragraph() for item in place_details: self.doc.start_paragraph("PLC-PlaceDetails") self.doc.write_text(item) self.doc.end_paragraph()
def calc_url(self): """ Determine the url to use on maps.google.com Logic: use lat lon if present otherwise use city and country if present otherwise use description of the place """ place = self._get_first_place()[0] latitude, longitude = self._lat_lon(place) if longitude and latitude: self.url = "http://maps.google.com/maps/mm?sll=%s,%s&z=15" % ( latitude, longitude) return location = get_main_location(self.database, place) city = location.get(PlaceType.CITY) country = location.get(PlaceType.COUNTRY) if city and country: self.url = "http://maps.google.com/maps?q=%s,%s" % (city, country) return titledescr = place_displayer.display(self.database, place) self.url = "http://maps.google.com/maps?q=%s" % \ '+'.join(titledescr.split())
def write_places(self): """ write the places associated with the tag """ plist = self.database.get_place_handles() filter_class = GenericFilterFactory('Place') a_filter = filter_class() a_filter.add_rule(rules.place.HasTag([self.tag])) place_list = a_filter.apply(self.database, plist) if not place_list: return self.doc.start_paragraph("TR-Heading") header = self._("Places") mark = IndexMark(header, INDEX_TYPE_TOC, 2) self.doc.write_text(header, mark) self.doc.end_paragraph() self.doc.start_table('PlaceTable', 'TR-Table') self.doc.start_row() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') self.doc.write_text(self._("Id")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') self.doc.write_text(self._("Title")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') self.doc.write_text(self._("Name")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal-Bold') self.doc.write_text(self._("Type")) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() for place_handle in place_list: place = self.database.get_place_from_handle(place_handle) place_title = _pd.display(self.database, place) self.doc.start_row() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal') self.doc.write_text(place.get_gid()) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal') self.doc.write_text(place_title) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal') self.doc.write_text(place.get_name()) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal') self.doc.write_text(str(place.get_type())) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() self.doc.end_table()