[Differential] [Request, 626 lines] D2376: Added module to merge buildings

tandon (Akshat Tandon) noreply at phabricator.kde.org
Tue Aug 9 07:33:37 UTC 2016


tandon created this revision.
tandon added reviewers: rahn, nienhueser.
tandon added subscribers: Marble, nienhueser.
tandon set the repository for this revision to rMARBLE Marble.

REVISION SUMMARY
  Uses DBSCAN <https://en.wikipedia.org/wiki/DBSCAN> clustering algorithm to identify building clusters and then merges these clusters using QPolygonF::united() method.
  
  However, the buildings are not getting correctly written in the output OSM file.
  We are getting buildings of the form
  
  > <way id="237536278" changeset="31318507" timestamp="2015-05-20T15:41:52Z" uid="35468" user="Blunauer" version="2" visible="true">
  > 
  >       <tag k="building" v="yes"/>
  >       <nd ref="2454247856"/>
  >       <nd ref="3530939281"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="1251325411"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="0"/>
  >       <nd ref="2454247856"/>
  >   </way>
  
  I suspect that it might be due to OsmWriters since I checked the generated GeoDataPlacemark of merged buildings and these were having legitimate longitude, latitude values.
  
  Also, the regionQuery() method, which queries neighboring buildings for cluster formation purposes, has a runtime of O(n) due to which our clustering takes O(n*n) time. As discussed with @nienhueser, Once we get the output right i.e. correctly merged buildings , regionQuery() can be optimized by using Quadtrees or R-Trees.

REPOSITORY
  rMARBLE Marble

REVISION DETAIL
  https://phabricator.kde.org/D2376

AFFECTED FILES
  tools/osm-simplify/BuildingBlock.cpp
  tools/osm-simplify/BuildingBlock.h
  tools/osm-simplify/BuildingCluster.cpp
  tools/osm-simplify/BuildingCluster.h
  tools/osm-simplify/BuildingDensityClustering.cpp
  tools/osm-simplify/BuildingDensityClustering.h
  tools/osm-simplify/BuildingMerger.cpp
  tools/osm-simplify/BuildingMerger.h
  tools/osm-simplify/CMakeLists.txt
  tools/osm-simplify/TagsFilter.h
  tools/osm-simplify/main.cpp

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: tandon, rahn, nienhueser
Cc: nienhueser, #marble, marble-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20160809/530b0c72/attachment.html>


More information about the Marble-devel mailing list