diff --git a/geojson.cpp b/geojson.cpp index 7aae06a1..1dbea6aa 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -431,10 +431,14 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje if (tas.type >= 0) { auto fk = layermap->find(layername); - fk->second.file_keys.insert(std::pair(tas.string, type_and_string_stats())); + + auto fka = fk->second.file_keys.find(tas.string); + if (fka == fk->second.file_keys.end()) { + fk->second.file_keys.insert(std::pair(tas.string, type_and_string_stats())); + fka = fk->second.file_keys.find(tas.string); + } if (track) { - auto fka = fk->second.file_keys.find(tas.string); if (fka == fk->second.file_keys.end()) { fprintf(stderr, "Can't happen (tilestats)\n"); exit(EXIT_FAILURE);