fundo
Baixou os dados do Alberta OSM da Geofabrik e os executa em um servidor Linux privado usando PostgreSQL 9.1, PostGIS 2.0, Mapnik 2.1.0, osm2pgsql, Apache 2, mod_tile, renderd e OpenLayers:
Os dados foram importados usando osm2pgsql
o seguinte:
osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2
Problema
Os dados OSM para Alberta estão incompletos. Recebi um conjunto de shapefiles que aprimora os dados do OSM:
City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx
Além de arquivos de forma adicionais para aldeias, áreas urbanas, limites de distritos municipais e assim por diante. Importei com sucesso os shapefiles para o PostgreSQL usando um plugin pgAdmin . O City.prj
arquivo descreve sua projeção da seguinte maneira:
GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
Os dados do shapefile e os dados do OpenStreetMap (OSM) têm seu próprio banco de dados, mas acredito que quero importar os dados do shapefile para o banco de dados OSM. (Este é um servidor privado e uma cópia local dos dados OSM; os dados do shapefile não podem ser compartilhados legalmente.)
Atualização # 1
Para ficar claro, os arquivos de forma não contêm estradas: apenas limites de município (que definitivamente não fazem parte dos dados OSM), cidades (algumas das quais fazem parte dos dados OSM) e limites de cidades para cidades maiores (algumas das quais podem conflito com os dados OSM).
Questão
Como mesclar os dados do shapefile com os dados do OSM para que as novas cidades apareçam no mapa?
Nota: Minha principal preocupação é resolver dados duplicados (por exemplo, Edmonton está listado no OSM e nos shapefiles adquiridos).
Links Relacionados
- http://wiki.openstreetmap.org/wiki/Shapefiles
- http://wiki.openstreetmap.org/wiki/Import/Shapefile
- http://wiki.openstreetmap.org/wiki/Convert_shp_to_osm_using_grass_and_gpsbabel
- https://github.com/wavded/js-shapefile-to-geojson
- http://redmine.yellowbkpk.com/projects/list_files/geo
- http://www.gdal.org/ogr2ogr.html
- http://wiki.openstreetmap.org/wiki/Ogr2osm
- https://github.com/andrewguertin/ogr2osm
- http://svn.openstreetmap.org/applications/utils/import/shp2osm/
- http://crschmidt.net/blog/archives/354/polyshp2osm/
- http://www.mail-archive.com/[email protected]/msg12487.html
Obrigado!
fonte
Respostas:
Introdução
Isso provavelmente exigirá uma quantidade significativa de trabalho manual para detectar e remover os dados duplicados. Quando você está detectando e resolvendo os dados duplicados; você deseja que as duas fontes estejam no mesmo formato geográfico: shapefile, PostGIS DBs ou como dados OSM.
Workflow
O fluxo de trabalho a seguir baseia-se em ter ambas as fontes de dados como OSM antes de mesclar e resolver dados duplicados.
Existem algumas opções para converter os dados em OSM:
UMA]
ogr2osm
como você notou: existem algumas versões diferentes do ogr2osm, não importa qual você use - prefiro o pnorman , é o mais atualizado. Não importa o que aconteça, verifique se os arquivos de tradução são compatíveis com a versão do ogr2osm que você está usando (por uma questão de simplicidade, as quais eu vinculei devem ser compatíveis com a versão do ogr2osm). Veja aqui exemplos de arquivos de tradução compatíveis com ogr2osm do pnorman.Verifique se o arquivo de tradução está completo com todas as informações que você deseja no seu shapefile. O arquivo de conversão converterá seus Tipos e atributos do shapefile no que o OSM chama de Tags , que consiste em Chaves e Valores.
1a. execute ogr2osm.
Abra josm , faça o download do plugin de confllation
Seus dados do gov agora são um arquivo osm. Abra josm, Arquivo> abra Seus dados estão lá como uma camada.
Se você já possui os dados OSM armazenados localmente no seu computador, abra-os no josm, eles também serão abertos como uma nova camada.
Mesclar essas duas fontes de dados e resolver os dados duplicados é conhecido como conflação . Execute o plug-in de inflação e resolva todos os conflitos.
Se o JOSM ficar sem memória (por exemplo, ao usar arquivos grandes), separe os tipos de atributos e conclua esse fluxo de trabalho várias vezes, cada um com um tipo diferente de dados (por exemplo, limites e usos do solo; rodovias; edifícios) e, finalmente, mescle os arquivos osm juntos usando osmium ou outra ferramenta.
B. O JOSM também pode ler arquivos de forma, embora o suporte a SHP não seja perfeito e esse método pressupõe que o arquivo de forma possa ser carregado inteiramente na memória ...
filename.shp
).Importar como OSM
Importe os dados do OpenStreetMap para o sistema da seguinte maneira:
A
-j
opção é fundamental, pois instrui o osm2pgsql a importar as tags para umahstore
coluna, preservando a estrutura de dados subjacente e importando todas as tags para o banco de dados.Criar camada Mapnik
Para que os dados apareçam no mapa, adicione uma camada e um estilo para essa camada. Isso pode ser tão simples quanto o seguinte:
mapnik-stylesheets/osm.xml
.</Map>
tag de fechamento ......
Criar estilo Mapnik
Continuando da seção anterior:
</Style>
tag (em torno da linha 3350).&layer-shapefiles;
diretiva:...
Roadmatcher
roadmatcher é outra ferramenta que pode ser útil
fonte
find_extent
vez dest_find_extent
). O banco de dados possui o PostGIS 2.0 instalado.