Тестирование spatialite-2.1
Alessandro Furieri прислал письмо с сообщением о выходе альфа-версии spatialite-2.1 со множеством приятных новшеств:
Раз так, то надо протестировать, чтобы в августе получить качественный релиз. Итак, запускаем GUI и выбираем в меню подключение шейпфайла. Беру слой с домами по Н. Новгороду (более 40 тысяч объектов), кодировку указываю cp-1251. Автоматически составляется следующий sql-запрос, который и выполняю:
Проверяем:
Как видим, русский язык работает, информация из шейпфайла доступна с помощью sql-запроса.
Попробуем выполнить пространственные запросы. Для этого нужно загрузить файл init_spatialite.sql с описаниями координатных систем.
Как видим, преобразование координат работает.
I've just released SpatiaLite 2.1-alpha
[OGC Spatials for SQLite]
http://www.gaia-gis.it/spatialite-2.1
This is not a stable release, and is simply
an "ad interim" one:
- now supporting Libiconv (full implementation
for locale charsets and Unicode UTF-8)
- now including an useful GUI management tool
(very similar to mysql-query-browser and
pgAdmin3)
** There are lots of GUI tools already
** supporting SQLite, but none of them
** allows dynamic extension loading,
** so they cannot be used for Spatial
** processing
D. Richard Hipp announced that SQLite's new
version [3.6] will officially support RTree
Spatial Index; public release is planned in
the next few days.
This explains why SpatiaLite 2.1-alpha is
a short-lived release; the stable SpatiaLite 2.1
will be released in August, so to include
sqlite-3.6 and the final, stable implementation
for SQLite's RTree
SpatiaLite 2.1-alpha still includes sqlite-3.5.9,
and consequently uses the experimental version of
RTree Spatial Index
Раз так, то надо протестировать, чтобы в августе получить качественный релиз. Итак, запускаем GUI и выбираем в меню подключение шейпфайла. Беру слой с домами по Н. Новгороду (более 40 тысяч объектов), кодировку указываю cp-1251. Автоматически составляется следующий sql-запрос, который и выполняю:
CREATE VIRTUAL TABLE nn_ppab
USING VirtualShape('/var/www/mbg/mobigroup.ru/res/maps/map_ru_52_nn/nn_ppab',
CP1251, -1)
Проверяем:
select count(*) from nn_ppab;
41608
select * from nn_ppab limit 1;
1 BLOB sz=260 GEOMETRY 1.0000 БОГДАНОВИЧА УЛИЦА жилой 7 Нижегородский 7 БОГДАНОВИЧА УЛИЦА 7
select * from nn_ppab where street='БОГДАНОВИЧА' limit 10;
1 BLOB sz=260 GEOMETRY 1.0000 БОГДАНОВИЧА УЛИЦА жилой 7 Нижегородский 7 БОГДАНОВИЧА УЛИЦА 7
2 BLOB sz=132 GEOMETRY 2.0000 БОГДАНОВИЧА УЛИЦА жилой 7 корп.2 Нижегородский 7 к.2 БОГДАНОВИЧА УЛИЦА 7 к.2
3 BLOB sz=260 GEOMETRY 3.0000 БОГДАНОВИЧА УЛИЦА жилой 7 корп.1 Нижегородский 7 к.1 БОГДАНОВИЧА УЛИЦА 7 к.1
6 BLOB sz=132 GEOMETRY 6.0000 БОГДАНОВИЧА УЛИЦА жилой 1 корп.1 Нижегородский 1 к.1 БОГДАНОВИЧА УЛИЦА 1 к.1
35665 BLOB sz=164 GEOMETRY 35675.0000 БОГДАНОВИЧА УЛИЦА жилой 1 корп.2 Нижегородский 1 к.2 БОГДАНОВИЧА УЛИЦА 1 к.2
37953 BLOB sz=260 GEOMETRY 37963.0000 БОГДАНОВИЧА УЛИЦА жилой 1 Нижегородский 1 БОГДАНОВИЧА УЛИЦА 1
Как видим, русский язык работает, информация из шейпфайла доступна с помощью sql-запроса.
Попробуем выполнить пространственные запросы. Для этого нужно загрузить файл init_spatialite.sql с описаниями координатных систем.
select AsText(Geometry) from nn_ppab where street='БОГДАНОВИЧА' limit 1;
POLYGON((442528.805533 6238209.748202, 442618.534136 6238207.367538, 442619.050719 6238209.3142, 442628.264127 6238209.891515, 442628.11679 6238213.850828, 442644.874392 6238213.5352, 442644.684053 6238197.728526, 442642.240754 6238196.709443, 442641.069658 6238190.84432, 442619.145452 6238191.509989, 442618.882569 6238193.507226, 442528.363387 6238196.790178, 442528.805533 6238209.748202))
select AsText(Transform(SetSRID(Geometry,28468),4326)) from nn_ppab where street='БОГДАНОВИЧА' limit 1;
POLYGON((44.072601 56.261807, 44.07405 56.261796, 44.074057 56.261814, 44.074206 56.26182, 44.074203 56.261856, 44.074473 56.261855, 44.074474 56.261713, 44.074434 56.261704, 44.074417 56.261651, 44.074063 56.261654, 44.074058 56.261672, 44.072597 56.26169, 44.072601 56.261807))
Как видим, преобразование координат работает.
Comments
Скажите где вы используете SQLite? свой ГИС проект? Может наладить обмен идеями.