def add_reverse_toponym_search(self, pos): point = self.screen_to_geo(pos) toponym = reverse_geocode(ll(point[0], point[1])) self.search_result = SearchResult( point, toponym['metaDataProperty']['GeocoderMetaData']['text'] if toponym else None, toponym['metaDataProperty']['GeocoderMetaData']['Address'].get('postal_code') if toponym else None)
def add_reverse_toponym_search(self, pos): point = self.screen_to_geo(pos) toponym = reverse_geocode(ll(point[0], point[1])) if self.search_result == None: self.search_result = SearchResult( point, toponym["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym else None, toponym["metaDataProperty"]["GeocoderMetaData"]["Address"].get( "postal_code") if toponym else None) self.first_lon_lat = point # (lat, lng) elif self.second_search == None: self.second_search = SearchResult( point, toponym["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym else None, toponym["metaDataProperty"]["GeocoderMetaData"]["Address"].get( "postal_code") if toponym else None) self.second_lon_lat = point self.distance_between_two = lonlat_distance( self.first_lon_lat, self.second_lon_lat) print('Расстояние между двумя точками:', round(self.distance_between_two), 'метров') else: self.search_result = self.second_search = None
def add_reverse_toponym_search(self, pos): point = self.screen_to_geo(pos) toponym = reverse_geocode(ll(point[0], point[1])) self.search_result = SearchResult( point, toponym["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym else None, toponym["metaDataProperty"]["GeocoderMetaData"]["Address"].get("postal_code") if toponym else None)
def add_reverse_toponym_search1(self, pos): point1 = self.screen_to_geo(pos) x1 = point1[0] y1 = point1[1] toponym1 = reverse_geocode(ll(x1, y1)) self.search_result = SearchResult( point1, toponym1["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym1 else None, toponym1["metaDataProperty"]["GeocoderMetaData"]["Address"].get( "postal_code") if toponym1 else None)
def add_reverse_toponym_search2(self, pos): point2 = self.screen_to_geo(pos) x2 = point2[0] y2 = point2[1] toponym2 = reverse_geocode(ll(x2, y2)) self.search_result = SearchResult( point2, toponym2["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym2 else None, toponym2["metaDataProperty"]["GeocoderMetaData"]["Address"].get( "postal_code") if toponym2 else None)
def __init__(self, lati=None, longi=None, user = None ): self.search['search'] = data self.search['distance'] = 50 if lati and longi: self.search.geo = [float(lati),float(longi)] try: address,zipcode = reverse_geocode(lati,longi) except Exception, e: log( "Geosearch error {}".format( str(e) ) ) else: search.zip = zipcode
def parse_query( data, lati=None, longi=None, user=None ): """ parse the data string and figure out what is wanted data - user string query """ # Create a search record search = Search() search.search = data search.distance = 50 if lati and longi: search.geo = [float(lati),float(longi)] try: address,zipcode = reverse_geocode(lati,longi) except Exception, e: log( "Geosearch error {}".format( str(e) ) ) else: search.zip = zipcode
def main(): pygame.init() screen = pygame.display.set_mode((600, 450)) screen.fill(pygame.Color('white')) mp = MapParams() input_box = InputBox(50, 10, 140, 32) im = Image.open('data/search_icon.png') im = im.resize((30, 30)) im.save('data/search_icon.png') button = pygame.image.load('data/search_icon.png').convert_alpha() b_rect = pygame.Rect(10, 10, 50, 50) reset = Button('Сброс поискового результата', 350, 10, 24) while True: event = pygame.event.wait() if event.type == pygame.QUIT: # Выход из программы break elif event.type == pygame.KEYUP: # Обрабатываем различные нажатые клавиши. mp.update(event) elif event.type == pygame.MOUSEBUTTONUP: # Выполняем поиск по клику мышки. if event.button == 1: # LEFT_MOUSE_BUTTON mp.add_reverse_toponym_search(event.pos) if b_rect.collidepoint(event.pos): text = input_box.text toponym = reverse_geocode(text) if toponym: point = toponym['Point']['pos'].split() mp.lon = float(point[0]) mp.lat = float(point[1]) mp.search_result = SearchResult( point, toponym["metaDataProperty"] ["GeocoderMetaData"]["text"] if toponym else None, toponym["metaDataProperty"]["GeocoderMetaData"] ["Address"].get("postal_code") if toponym else None) else: input_box.text = 'Ничего не найдено' if reset.rect.collidepoint(event.pos): mp.search_result = None elif event.button == 3: # RIGHT_MOUSE_BUTTON mp.add_reverse_org_search(event.pos) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RETURN and input_box.active: text = input_box.text toponym = reverse_geocode(text) if toponym: point = toponym['Point']['pos'].split() mp.lon = float(point[0]) mp.lat = float(point[1]) mp.search_result = SearchResult( point, toponym["metaDataProperty"]["GeocoderMetaData"]["text"] if toponym else None, toponym["metaDataProperty"]["GeocoderMetaData"] ["Address"].get("postal_code") if toponym else None) else: input_box.text = 'Ничего не найдено' map_file = load_map(mp) screen.blit(pygame.image.load(map_file), (0, 0)) if mp.search_result: if mp.use_postal_code and mp.search_result.postal_code: text = render_text(mp.search_result.postal_code + ", " + mp.search_result.address) else: text = render_text(mp.search_result.address) screen.blit(text, (20, 400)) input_box.handle_event(event) input_box.update() input_box.draw(screen) screen.blit(button, b_rect) reset.draw(screen) screen.blit(screen, (0, 0)) pygame.display.flip() pygame.quit() os.remove(map_file)
def add_reverse_toponym_search(self, pos): point = self.screen_to_geo(pos) toponym = reverse_geocode(ll(point[0], point[1])) self.search_result = SearchResult( point, toponym["metaDataProperty"]["GeocoderMetaData"]['text'] if toponym else None)