Czy ktoś wie, gdzie mogę znaleźć przykładowy plik kształtu, który ma w nim puste wpisy (najlepiej plik kształtu wielokąta)?
Nie jestem pewien, jak utworzyć taki z zerowymi wpisami.
Czy ktoś wie, gdzie mogę znaleźć przykładowy plik kształtu, który ma w nim puste wpisy (najlepiej plik kształtu wielokąta)?
Nie jestem pewien, jak utworzyć taki z zerowymi wpisami.
Odpowiedzi:
Ostrzegamy, że wiele programów odczytujących pliki SHP nie obsługuje wartości zerowych dla geometrii. Nawet starsze wersje ArcView miały problemy.
Utworzyłem próbkę tutaj: http://www.routeware.dk/temp/shp_null_sample.zip Zawiera 3 rekordy, drugi nie ma geometrii.
Zakładam, że masz na myśli wartość null dla kolumny geometria / kształt, ponieważ pliki kształtów nie obsługują wartości null dla dowolnego typu pola oprócz geometrii i (słyszę) dla pól daty.
Poniższy kod tworzy 1 plik kształtu z 1 rekordem / operacją o zerowej geometrii poli.
import arcpy
import os
outfc = r'c:\temp\outfc.shp'
arcpy.env.workspace = os.path.dirname(outfc)
arcpy.CreateFeatureclass_management(arcpy.env.workspace,os.path.basename(outfc), 'polygon')
cur = arcpy.InsertCursor(outfc)
row = cur.newRow()
cur.insertRow(row)
del(row)
del(cur)
r = arcpy.CheckGeometry_management(outfc,'in_memory\\outtable')
print r.getMessages()
Uruchomiłem go i dostałem to, czego bym się spodziewał
OSTRZEŻENIE 000442: geometria zerowa przy 0 w c: \ temp \ outfc.shp
Jeśli pracujesz na oprogramowaniu ESRI, przynajmniej mogę mówić w ArcGIS 9.3, wtedy pliki kształtów nie obsługują wartości zerowych. Wpadłem na ten problem kilka tygodni temu i spędziłem dzień na badaniu. Znalazłem ten link szczególnie pouczający http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Wydaje się, że jedynym sposobem na obsługę wartości zerowych w plikach kształtu ESRI jest użycie geobaz danych (wtedy pliki kształtów stają się klasami obiektów. Użyłem pliku geobazy). Aby obsługiwać wartości zerowe, skończyłem z tworzeniem geobazy i tworzeniem klas obiektów (zwanych inaczej plikami shapefiles) wewnątrz geobazy danych pliku (będzie to obsługiwać wartości null) w przeciwieństwie do tworzenia pliku shapefile, a następnie importowania go do geobazy (nie będzie to obsługiwać wartości zerowych) . Jeśli dobrze pamiętam, musisz również jawnie określić we właściwościach pola, że mają być obsługiwane wartości null. Oto link, który może pomóc Jak utworzyć klasę obiektów w geobazie pliku w ArcGIS 9.3 za pomocą Pythona?