1212namespace plateau ::dataset {
1313 namespace fs = std::filesystem;
1414 using namespace geometry ;
15- using namespace utils ;
1615
1716 // ! 建築物、建築物部分、建築物付属物及びこれらの境界面
1817 const std::string UdxSubFolder::bldg = " bldg" ;
@@ -157,9 +156,8 @@ namespace plateau::dataset {
157156 for (const auto & gml_file: gml_files) {
158157 auto grid_code = gml_file.getGridCode ();
159158 if (!gml_file.isValid ()) continue ;
160- if (collection.files_by_code_ .count (grid_code->get ()) == 0 ) {
161- collection.files_by_code_ .emplace (grid_code->get (), std::vector<GmlFile>());
162- }
159+ if (!grid_code->isValid ()) continue ;
160+ collection.files_by_code_ .try_emplace (grid_code->get (), std::vector<GmlFile>());
163161 collection.files_by_code_ [grid_code->get ()].push_back (gml_file);
164162 }
165163 }
@@ -195,7 +193,7 @@ namespace plateau::dataset {
195193 // これがないとフィルターの結果に対して fetch を実行するときにパスがずれます。
196194 out_collection_ptr->setUdxPath (udx_path_);
197195 // 検索用に、引数の grid_codes を文字列のセットにします。
198- auto grid_codes_str_set = createExpandedGridCodeSet (grid_codes);
196+ auto grid_codes_str_set = utils:: createExpandedGridCodeSet (grid_codes);
199197
200198 // ファイルごとに grid_codes_str_set に含まれるなら追加していきます。
201199 for (const auto & [code, files] : files_by_code_) {
@@ -286,6 +284,7 @@ namespace plateau::dataset {
286284 double lon_sum = 0 ;
287285 double height_sum = 0 ;
288286 for (const auto & grid_code : grid_codes_) {
287+ if (grid_code == nullptr && !grid_code->isValid ()) continue ;
289288 const auto & center = grid_code->getExtent ().centerPoint ();
290289 lat_sum += center.latitude ;
291290 lon_sum += center.longitude ;
@@ -307,23 +306,19 @@ namespace plateau::dataset {
307306 for (const auto & file: files) {
308307 auto grid_code = file.getGridCode ();
309308 if (!grid_code->isValid ()) continue ;
310- grid_codes_.insert (GridCode::create (file. getGridCode ()-> get ()) );
309+ grid_codes_.insert (grid_code );
311310 }
312311 }
313312 }
314313 return grid_codes_;
315314 }
316315
317316 void LocalDatasetAccessor::addFile (PredefinedCityModelPackage sub_folder, const GmlFile& gml_file_info) {
318- if (files_.count (sub_folder) <= 0 ) {
319- files_.emplace (sub_folder, std::vector<GmlFile>());
320- }
317+ files_.try_emplace (sub_folder, std::vector<GmlFile>());
321318 files_.at (sub_folder).push_back (gml_file_info);
322319
323320 const auto grid_code = gml_file_info.getGridCode ()->get ();
324- if (files_by_code_.count (grid_code) == 0 ) {
325- files_by_code_.emplace (grid_code, std::vector<GmlFile>());
326- }
321+ files_by_code_.try_emplace (grid_code, std::vector<GmlFile>());
327322 files_by_code_[grid_code].push_back (gml_file_info);
328323 }
329324
0 commit comments