Esempio n. 1
0
 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)
Esempio n. 2
0
    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
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
    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
Esempio n. 7
0
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
Esempio n. 8
0
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)
Esempio n. 9
0
 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)