проблемы с импортом файла формы postgis - PullRequest
3 голосов
/ 21 августа 2011

Привет. Я пытаюсь импортировать файл формы из

http://www.nyc.gov/html/dcp/html/bytes/bytesarchive.shtml

в базу данных postgis.вышеупомянутые файлы создают МНОГОПОЛИГОНЫ, когда я импортирую, используя shp2pgsql.

, тогда я пытаюсь просто определить, содержатся ли точки lat / long в моих мультиполигонах

, однако мои выборки не работают, и когдая распечатываю точки моего столбца the_geom, он кажется очень разбитым.

select st_astext(geom) from (select (st_dumppoints(the_geom)).* from nybb where borocode =1) foo;

дает результат ...

            st_astext
------------------------------------------
 POINT(1007193.83859999 257820.786899999)
 POINT(1007209.40620001 257829.435100004)
 POINT(1007244.8654 257833.326199993)
 POINT(1007283.3496 257839.812399998)
 POINT(1007299.3502 257851.488900006)
 POINT(1007320.1081 257869.218500003)
 POINT(1007356.64669999 257891.055800006)
 POINT(1007385.6197 257901.432999998)
 POINT(1007421.94509999 257894.084000006)
 POINT(1007516.85959999 257890.406100005)
 POINT(1007582.59110001 257884.7861)
 POINT(1007639.02150001 257877.217199996)
 POINT(1007701.29170001 257872.893099993)
...

для точек в nyc, это очень плохо.. что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 21 августа 2011

Очки не из. Пространственные данные, которые упоминаются, НЕ в широте / долготе Вот почему цифры отличаются от того, что вы ожидаете. Если вам нужно, чтобы он был в long / lat, его необходимо перепроецировать. Подробнее здесь: http://postgis.refractions.net/news/20020108/

Кажется, что проекция данных находится в NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet системе координат (в соответствии с метаданными - см. Код.).

<spref>
    <horizsys>
        <planar>
            <planci>
                <plance Sync="TRUE">coordinate pair</plance>
                <coordrep>
                    <absres Sync="TRUE">0.000000</absres>
                    <ordres Sync="TRUE">0.000000</ordres>
                </coordrep>
                <plandu Sync="TRUE">survey feet</plandu>
            </planci>
            <mapproj><mapprojn Sync="TRUE">Lambert Conformal Conic</mapprojn><lambertc><stdparll Sync="TRUE">40.666667</stdparll><stdparll Sync="TRUE">41.033333</stdparll><longcm Sync="TRUE">-74.000000</longcm><latprjo Sync="TRUE">40.166667</latprjo><feast Sync="TRUE">984250.000000</feast><fnorth Sync="TRUE">0.000000</fnorth></lambertc></mapproj></planar>
        <geodetic>
            <horizdn Sync="TRUE">North American Datum of 1983</horizdn>
            <ellips Sync="TRUE">Geodetic Reference System 80</ellips>
            <semiaxis Sync="TRUE">6378137.000000</semiaxis>
            <denflat Sync="TRUE">298.257222</denflat>
        </geodetic>
        <cordsysn>
            <geogcsn Sync="TRUE">GCS_North_American_1983</geogcsn>
            <projcsn Sync="TRUE">NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet</projcsn>
        </cordsysn>
    </horizsys>
</spref>

Если вы много работаете с пространственными данными, я предлагаю вам прочитать больше о проекция карты .

0 голосов
/ 21 августа 2011

Я думаю, что это не проблема с PostGIS.Я проверял входной файл Shari esri nybb.shp с помощью AvisMap Free Viewer и, как вы видите, точки странны сами по себе:

enter image description here

Однако в nybb.shp.xml файл метаданных:

<spdom>
    <bounding>
        <westbc Sync="TRUE">-74.257465</westbc>
        <eastbc Sync="TRUE">-73.699450</eastbc>
        <northbc Sync="TRUE">40.915808</northbc>
        <southbc Sync="TRUE">40.495805</southbc>
    </bounding>
    <lboundng>
        <leftbc Sync="TRUE">913090.770096</leftbc>
        <rightbc Sync="TRUE">1067317.219904</rightbc>
        <bottombc Sync="TRUE">120053.526313</bottombc>
        <topbc Sync="TRUE">272932.050103</topbc>
    </lboundng>
</spdom>

Я не знаком с этим инструментарием (ESRI ArcCatalog), но, скорее всего, вам необходимо изменить масштаб точек после импорта с использованием этих метаданных.

...