Forum QGIS

Pełna wersja: Eksport shp do postgresa
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Witam,
wiem, że da się wyeksportować shp do bazy postgresa poprzez wtyczkę SPIT. Kiedyś to robiłam i nie było zbytnio problemów. Jednak teraz chciałam to zrobić, ustawiłam połączenia do serwera (poprawnie się łączy), dodaje tylko 1 shp i klikam OK. Teoretycznie powinno wyeksportować. Niestety za każdym razem, bez względu na to jak duży jest ten shp i ile ma obiektów program mi się wysypuje. Sprawdzałam i na 1.5 i na 1.6 i na 3 różnych komputerach. Za każdym razem QGIS wyłącza się.

Może ktoś ma pomysł dlaczego?
Jaki system operacyjny?
Może baza nie jest przestrzenna (bez zainstalowanego Postgis, powinny byś kolumny geometry_columns i spatial_ref_sys)? Ale jak ja próbuję do takiej bazy wyeksportować to pojawia mi się stosowny komunikat. A może shp ma jakieś błędy geometrii? Można to sprawdzić w menu wektor > narzędzia geometrii > sprawdź poprawność geometrii, ale wydaje mi się, że to też nie powinno wywalić wtyczki. Nic więcej nie przychodzi mi do głowy, może coś innego jest z tym shp nie tak, tylko że nie wiem co jeszcze to może być. Spróbuj z innym shp, najlepiej samodzielnie stworzonym z jakimiś kilkoma prostymi obiektami, to będziemy wiedzieć czy to wina shp czy bazy.
Na Windowsie, zainstalowany jest Postgis, baza jest przestrzenna i ma odpowiednie kolumny. Shp też to nie wina bo próbowałam na tych co mam i na samodzielnie stworzonych z 2,3 obiektami. Wtyczka za każdym razem próby eksportu wywala mi cały program.
A w jakim układzie współrzędnych jest ta warstwa? Może przed eksportem trzeba ustawić właściwy układ współrzędnych projektu i (na wszelki wypadek) układ współrzędnych warstwy w jej właściwościach.
Warstwy są w WGS84 i projekt też jest w WGS84
Mniej prawdopodobne przyczyny to (szczerze mówiąc to strzelam):
1. Brak odpowiednich uprawnień w bazie danych.
2. Istnieje już taka tabela w bazie.
3. Brak miejsca na dysku na którym są bazy.

Może przez terminal się uda z pominięciem QGIS, za pomocą shp2pgsql.
W systemach Linux trzeba w terminalu wpisać:
Kod:
shp2pgsql -s 4326 /sciezka/do/pliku/shape/plik.shp jakas_nazwa > /sciezka/do/pliku/nazwa_pliku.sql

W Windows najpierw chyba trzeba wejść do katalogu z programem shp2pgsql.

Potem takim plikiem.sql tworzymy tabelę np. w PgAdminIII (albo znowu w terminalu ale nie wiem jak to by wyglądało pod Windows).
Spróbuj wgrać ten plik przez wtyczkę PostGIS Manager. Ma ona opcję eksportu do pliku sql, więc można sprawdzić czy problem wynika z błędów samego QGISa, czy pojawia się dopiero na poziomie serwera bazy danych.
Próbowałam przez tą wtyczkę PostGIS Manager jednak otrzymuje błąd "Wystąpił błąd podczas wykonywania kodu Python", więc wygląda jakby był błąd z programem. Tylko dlaczego skoro nawet kiedyś odinstalowałam i zainstalowałam nowszą wersję z instalki na stronie QGISa. A poza tym dlaczego na innym komputerze też takie same rzeczy się dzieją?
Napisz jaki błąd Pythona otrzymałaś.
Dokładnie treść komunikatu jest taka:

Wystąpił błąd podczas wykonywania kodu Pythona:
Traceback (most recent call last):
File "C:/Users/Basia/.qgis/python/pluginspostgis_managerDlgLoadData.py", line 153, in onLoad
res, err = self.load_data_win(out, args)
File "C:/Users/Basia/.qgis/python/pluginspostgis_managerDlgLoadData.py", line 227, in load_data_win
p = os.popen3(cmdline)
UnicodeEncodeError: 'ascii' codec can't encode character u'u0142' in position 38: ordinal not in range(128)

Wersja Pythona:
2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]


Wersja QGIS:
1.6.0-Copiapo Copiapo, exported
Stron: 1 2