GeometryCollection operator()(const mapbox::geometry::line_string<int16_t>& geom) const {
     GeometryCoordinates coordinates;
     coordinates.reserve(geom.size());
     for (const auto& point : geom) {
         coordinates.emplace_back(point);
     }
     return { coordinates };
 }
 void operator() (mapbox::geometry::line_string<std::int64_t> & geom)
 {
     if (geom.size() <= 2)
     {
         next_(geom);
     }
     else
     {
         mapbox::geometry::line_string<std::int64_t> simplified;
         douglas_peucker(geom, std::back_inserter(simplified), simplify_distance_);
         next_(simplified);
     }
 }