public static function fromString($points, $points_separator = ",", $coords_separator = " ")
    {
        if($points_separator == $coords_separator)
            throw new GeoSpatialException("Error: separators must be different");
        $parsed_points = array_map(function($p) use ($coords_separator){
            return Point::fromString($p, $coords_separator);
        }, explode($points_separator, trim($points)));
        return new static($parsed_points);
    }